首先说下,为什么想起来要清理sysaux表空间?
因为前几天把awr的间隔调整到了15min,保留30天,结果sysaux表空间每天增长1G,没几天空间就不足了。
了解到snapshot的数据是保存在sysaux表空间的,故决定删除部分snapshot数据。
另外,通过查询sysaux表空间的大对象,发现就只有WRH$_LATCH_CHILDREN表和WRH$_LATCH_CHILDREN_PK索引占用的空间很大。
1.查询snapshot
select snap_id, begin_interval_time from sys.dba_hist_snapshot order by snap_id;
2.更改awr设置
exec dbms_workload_repository.modify_snapshot_settings(INTERVAL => 60, retention => 7 * 24 * 60);
3.删除snapshot
BEGIN
dbms_workload_repository.drop_snapshot_range(low_snap_id => 16351,
high_snap_id => 16352,
dbid => 1084548623);
END;
/
4.删除WRH$_LATCH_CHILDREN表中不需要的数据
delete from wrh$_latch_children where snap_id < 16353;
commit;
5.删除超过7天的统计信息
exec dbms_stats.purge_stats(systimestamp - 7);
6.降低高水位
alter table sys.wrh$_latch_children move;
alter table sys.wrh$_active_session_history move;
阅读(5701) | 评论(1) | 转发(0) |