首页
登录 | 注册

Oracle sysaux表空间使用过大处理-3

博客文章除注明转载外,均为原创。转载请注明出处。

Oracle sysaux表空间使用过大处理第三篇,前两篇请见Oracle sysaux表空间使用过大处理-1(http://blog.chinaunix.net/uid-31396856-id-5819732.html)和Oracle sysaux表空间使用过大处理-2(http://blog.chinaunix.net/uid-31396856-id-5819835.html)

前面2篇都是用了非常规手段。其实awr资料库清理的常规办法是使用dbms_workload_repository.drop_snapshot_range来清理:

但是这种清理的效率非常的低,因此在介绍一种比较高效率的清理方式:
1、检查快照信息
SYS@transdb-10.x.x.xxx>select min(snap_id),max(snap_id) from WRH$_ACTIVE_SESSION_HISTORY;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
   1     43100

SYS@transdb-10.x.x.xxx>select min(snap_id),max(snap_id) from dba_hist_snapshot;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
       42894     43100
有以上可知,我们根据awr信息资料库保留策略,保留snap_id >=42894的信息。
   
2.查找到那些占用sysaux表空间的基表,按照大小进行排序



step3
查看表的DDL或者表结构发现WRH$表中都有snap_id字段,利用这个字段进行数据处理。
对占用空间比较多的表进行数据处理,备份wrh$_active_session_history表保留数据到wrh$_ash_bak表。


step4:数据校验:
SYS@transdb-10.x.x.xxx>select count(*) from wrh$_ash_bak;
  COUNT(*)
----------
      9723


SYS@transdb-10.x.x.xxx>select count(*) from wrh$_active_session_history WHERE SNAP_ID>=42894 ;
  COUNT(*)
----------
      9723

step5:清除源表WRH$_ACTIVE_SESSION_HISTORY数据
SYS@transdb-10.x.x.xxx>TRUNCATE TABLE WRH$_ACTIVE_SESSION_HISTORY;
Table truncated.

step6:将备份数据恢复至源表
SYS@transdb-10.x.x.xxx>INSERT INTO WRH$_ACTIVE_SESSION_HISTORY SELECT * FROM WRH$_ASH_TEMP;
9723 rows created.

SYS@transdb-10.x.x.xxx>COMMIT;
Commit complete.

step7.验证基表数据
SYS@transdb-10.x.x.xxx>SELECT COUNT(*) FROM WRH$_ACTIVE_SESSION_HISTORY;
  COUNT(*)
----------
      9723

step8.删除备份临时表
SYS@transdb-10.x.x.xxx>drop table WRH$_ASH_TEMP purge;
Table dropped.
SYS@transdb-10.x.x.xxx>COMMIT;
Commit complete.

--the end

相关文章

  • Oracle sysaux表空间使用过大处理-2
    博客文章除注明转载外,均为原创.转载请注明出处. 接上文(Oracle sysaux表空间使用过大处理-1http://blog.chinaunix.net/uid-31396856-id-5819732.html)介绍另一种处理方法: 基 ...
  • Oracle sysaux表空间使用过大处理-1
    博客文章除注明转载外,均为原创.转载请注明出处. Oracle sysaux表空间占用过大处理办法: step1:检查表空间的使用情况 sysaux表空间空间使用是很大的. step2:检查表空间被内容占用: 主要是awr信息库使用了sys ...
  • Oracle 12C Sharding部署和测试
    Oracle 12C Sharding部署和测试 日期:2019-02-26 作者:陈举超   一:环境说明 OS:CentOS Linux release 7.5 DB:Oracle 12.2.0.1.0 GSMOCI:2.2.1 本次使 ...
  • oracle10 版本 jdbc 驱动中 OraclePreparedStatement 执行excuteQuery 时返回的ResultSet的日期类型字段使用getObject 获得对象时,返回的是 java.sql.Date .  这 ...
  • 在用Oracle的SQL*PLUS的时候SPOOL真是好用啊.在MySQL中如何实现呢?下面来实验说明 MySQL中可以用tee参数具体实现方式有三种 第一种:tee参数加入my.cnf参数文件 例子: tee =/mysql/mysql_ ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.012 s.
京ICP备10005923号