一时冲动将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使用方法:
Oracle 在10g以前的使用的是 Statspack做性能故障诊断的。Oracle Database 10g 提供了一个显著改进的工具:自动工作负载信息库 (AWR)。AWR 和数据库一起安装。数据库装好后,,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一次(snap)
要查看当前的设置,您可以使用下面的语句:
select snap_interval, retention from dba_hist_wr_control;SNAP_INTERVAL RETENTION
------------------- -------------------
+00000 01:00:00.0 +00007 00:00:00.0
这些 SQL 语句显示快照每小时采集一次,采集的数据保留 7 天。要修改设置 -- 例如,快照时间间隔为 20 分钟,保留时间为两天 -- 您可以发出以下命令。参数以分钟为单位。
begin dbms_workload_repository.modify_snapshot_settings ( interval => 20, retention => 2*24*60 ); end;
AWR 使用几个表来存储采集的统计数据,所有的表都存储在新的名称为 SYSAUX 的特定表空间中的 SYS 模式下,并且以 WRM$_* 和 WRH$_* 的格式命名。前一种类型存储元数据信息(如检查的数据库和采集的快照),后一种类型保存实际采集的统计历史数据。(H 代表"历史数据 (historical)"而 M 代表"元数据 (metadata)")
在这些表上构建了几种带前缀 DBA_HIST_ 的视图,这些视图可以用来编写您自己的性能诊断工具。视图的名称直接与表相关;例如,视图 DBA_HIST_SYSMETRIC_SUMMARY 是在WRH$_SYSMETRIC_SUMMARY 表上构建的。 AWR 历史表采集的信息比 Statspack 多许多,这些信息包括表空间使用率、文件系统使用率、甚至操作系统统计数据。这些表的完整的列表可以从数据字典中看到。
手工创建快照可以使用:
exec dbms_workload_repository.create_snapshot;
通过awrrpt脚本可以生成报告:
@?/rdbms/admin/awrrpt
生成报告,html和text格式都可以
Version 10.2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|