一时冲动将awr的快照时间改成30分钟一次、保留25天、level=all。造成sysaux表空间爆满。
下面是解决方法:
1. 在oem里更改以上参数,将采样时间改成1小时、保留7天、level=typical。发现不灵,不知道是不是oem有问题。
2.用语句更改,早知道就应该用语句了:
exec dbms_workload_repository.drop_snapshot_range(low_snap_id => xxxx, high_snap_id=>xxxx)
发现表空间释放一些,但是第二天数据库报错,说是sysaux空间无法扩展。再用以上方法不灵。
3. select * from dba_hist_wr_control;
发现 snap_interval 为30, retention 20。原来oem没有将它改过来,之后修改retention
DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(retention => 7);
改过之后发现空间依然没有回收。
4. 终极大法,删除awr,重新建立
SQL> @?/rdbms/admin/catnoawr.sql -----------------------删除awr
但是在重新建立上出了麻烦,查到的资料是运行@?/rdbms/admin/catawrtb.sql 但是在运行DBMS_WORKLOAD_REPOSITORY报错。
经过google 发现10g2 上应该运行catsvrm.sql,运行之后问题解决。之后运行DBMS_WORKLOAD_REPOSITORY调整时间。
重启数据库
附DBMS_WORKLOAD_REPOSITORY使用方法:
http://www.eygle.com/digest/2008/09/oracle10g_dbms_workload_reposi.html
Oracle 在10g以前的使用的是 Statspack做性能故障诊断的。Oracle Database 10g 提供了一个显著改进的工具:自动工作负载信息库 (AWR)。AWR 和数据库一起安装。数据库装好后,,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一