默认情况下,AWR的信息每隔一个小时收集一次AWR信息,并保留7天。这些数据存放在SYSAUX表空间中,可能会导致SYSAUX表空间不足,
如果SYSAUX空间严重不足,将会在alter日志报ORA-1683和ORA-1688错误,建议修改为每隔4小时收集一次并保留3天的数据。

现象描述: 
 版本:oracle 11.0.7
oracle日常检查中发现alter日志报如下错误:
ORA-1683: unable to extend index SYS.WRH$_LATCH_PK partition
WRH$_LATCH_4064376933_1546 by
 128 in               tablespace SYSAUX
ORA-1688: unable to extend table SYS.WRH$_SYSSTAT partition
WRH$_SYSSTA_4064376933_1546 by
 128 in                 tablespace SYSAUX
MMON Flush encountered SYSAUX out of space error(1688).       
 告警信息: 
 ORA-1683: unable to extend index SYS.WRH$_LATCH_PK partition
WRH$_LATCH_4064376933_1546 by
 128 in               tablespace SYSAUX
ORA-1688: unable to extend table SYS.WRH$_SYSSTAT partition
WRH$_SYSSTA_4064376933_1546 by
 128 in                 tablespace SYSAUX
MMON Flush encountered SYSAUX out of space error(1688).

 

原因分析: 
默认情况下,AWR的信息每隔一个小时收集一次AWR信息,并保留7天。这些数据存放在SYSAUX表空间中。


处理过程: 
目前现网即是采用默认配置,建议修改为每隔4小时收集一次并保留3天的数据。
修改步骤如下:
1.查询当前的设置:
SQL> select * from dba_hist_wr_control;
返回结果例如:
    DBID                SNAP_INTERVAL  RETENTION    TOPNSQL
1 4068003495     +00000 01:00:00.0    +00008 00:00:00.0     DEFAULT
字段snap_interval表示时间间隔,这里为每1小时收集一次AWR

2.查看moving_window_size的大小:
SQL> SELECT baseline_name, start_snap_time, end_snap_time,
moving_window_size
  FROM dba_hist_baseline_details

3.返回结果中,如果字段moving_window_size的值大于要修改为的保留天数,则必须执行
以下命令修改,这里应修改为3:
begin DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE(WINDOW_SIZE=>3);
end;

4.修改AWR设置:
BEGIN
  dbms_workload_repository.modify_snapshot_settings(INTERVAL  =>240,retention => 3 * 24 * 60);
END;
这里,参数INTERVAL表示每隔多少分钟收集一次AWR信息。参数retention表示3(天)*24(小时/天)*60(分钟/小时)分钟。


5.将AWR的保留天数从7天修改为3天后,系统不会自动将第4天到第7天的信息删除。仍需要手工删除,删除方法请参考下面的内容。
删除部分AWR信息的步骤如下:
找到DBID:
SQL> select dbid from v$database
返回结果例如4068003495
确定要清除哪些SNAP_ID:
查询视图dba_hist_snapshot确定需要清除的SNAP_ID范围,这里例如为51到130
清除AWR历史数据:
BEGIN
  dbms_workload_repository.drop_snapshot_range(
low_snap_id  => 51,
high_snap_id => 130,
dbid         => 4068003495);
END;


6.查询视图dba_hist_snapshot以及WRH$_LATCH,应发现SNAP_ID范围为51到130的数据已被清除。

       
建议与总结: 
oracle 10G后新增表空间SYSAUX空间,默认情况下,AWR的信息每隔一个小时收集一次AWR信息,并保留7天。这些数据存放在SYSAUX表空间中,建议修改为每隔4小时收集一次并保留3天的数据。