修改ARW快照保存策略

  Database

1. 查看SYSAUX 表空间中各个表占用的大小

SELECT occupant_name "Item", 
       space_usage_kbytes / 1048576 "Space Used (GB)", 
       schema_name "Schema", 
       move_procedure "Move Procedure" 
FROM v$sysaux_occupants 
ORDER BY 2 ;

2. 修改AWR快照保存时间

直接修改可能会报错:

ERROR at line 1:
ORA-13541: system moving window baseline size (691200) greater than retention (604800)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 174
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 222
ORA-06512: at line 1

提示‘系统移动窗口基线时间大小’比‘AWR快照保存时间大小’要大,
要正确设置‘AWR快照保存时间’的话,需要‘系统移动窗口基线时间大小’ 小于 ‘AWR快照保存时间大小’,所以先按下面的方式来操作.

2.1. 查看系统移动窗口基线

SELECT dbid, baseline_name, baseline_type, moving_window_size from dba_hist_baseline;
DBID BASELINE_NAME BASELINE_TYPE MOVING_WINDOW_SIZE‘系统移动窗口基线时间大小’
3316270696 SYSTEM_MOVING_WINDOW MOVING_WINDOW 8

MOVING_WINDOW_SIZE = 8 天,82460*60=691200

2.2. 查看AWR快照保存时间

select * from dba_hist_wr_control;

| DBID SNAP_INTERVAL保存间隔 | RETENTION 保存时间 | TOPNSQL|
|-|-|-|
|741428213 +00000 01:00:00.0|+00010 00:00:00.0|100
上面的结果是: 每小时保存一次,最长保存10天0小时0分0秒,保留100个TPOPN语句

### 2.3. 开始修改AWR快照时间
综合上面的内容,按下面顺序修改TIPS: EXEC 用于sqlplus ; NAVICAT,PlSql使用begin end:
2.3.1. 修改‘系统移动窗口基线时间大小’

exec DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE(2);

2.3.2. ‘AWR快照保存时间大小’

exec dbms_workload_repository.modify_snapshot_settings ( interval => 60, retention => 3600, topnsql => 100); 

2.3.3. 按[2.1](### 2.1. 查看系统移动窗口基线)[2.2](### 2.2. 查看AWR快照保存时间)查看步骤查看设置结果

2.4. 清理awr快照

2.4.1. 查看快照最大id最小id

select min(snap_id),max(snap_id) from dba_hist_snapshot;

2.4.2. 清理快照
注意快照很大的话不要一次清理过多的快照,否则会导致数据库不可用

exec DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(较小的id, 较大的id);  

2.4.3. 按[1](## 1. 查看SYSAUX 表空间中各个表占用的大小)查看表空间中表的大小