*险核心库aud$过大,需要清理,DB版本为11.2.0.4,由于保险行业需要审计信息至少保留半年,所以不能直接对aud$进行truncate清理,故需要使用ORACLE的清理方法。
-
19:13 PM SQL> select * from
-
2 (select owner,segment_name,round(bytes/1024/1024/1024,2) size_g from dba_segments s where s.tablespace_name='SYSAUX'
-
3 order by 3 desc
-
4 )
-
5 where rownum<=10
-
6 ;
-
-
OWNER SEGMENT_NAME SIZE_G
-
------------------------------ ---------------------------------------------------------------------------- ----------
-
SYS AUD$ 173.37
-
SYS WRH$_ACTIVE_SESSION_HISTORY 31.24
-
SYS WRH$_ACTIVE_SESSION_HISTORY_PK 3.35
-
SYS I_WRI$_OPTSTAT_HH_ST 2.97
-
SYS I_WRI$_OPTSTAT_HH_OBJ_ICOL_ST 2.69
-
SYS WRH$_EVENT_HISTOGRAM_PK 1.56
-
SYS WRH$_EVENT_HISTOGRAM 1.51
-
SYS WRH$_SQLSTAT 0.98
-
SYS WRH$_LATCH 0.88
-
SYS WRH$_LATCH_MISSES_SUMMARY 0.76
-
-
10 rows selected
1、设置审计归档日期:
BEGIN
SYS.DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(audit_trail_type => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD ,
last_archive_time => TO_TIMESTAMP('2016-03-13 00:00:00.0',
'yyyy-mm-dd HH24:MI:SS.FF') );
END;
/
2、根据归档日期进行删除:
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS,
use_last_arch_timestamp => TRUE);
END;
/
传统方法:使用导出备份后进行truncate(exp到truncate动作之间insert进去的审计信息将丢失)
需要注意:TRUNCATE表的时候会导致需要审计会会话挂起,故生产库一定要在维护窗口才能做
1、EXP导出表
2、TRUNCATE TABLE SYS.AUD$ REUSE STORAGE;
ALTER TABLE SYS.AUD$ DEALLOCATE UNUSED KEEP 1024M;
由于EXP导出速度不给力,压缩也不好用,也可以将表COPY到非SYS下,再truncate后再导出文件进行备份(或者规划一个数据归档的SCHEMA,不导出了)
1/Create table devmgr.aud_bak_20160918 compress as select * from sys.aud$;
2/truncate table sys.aud$;
[3/drop table devmgr.aud_bak_20160918;]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30241844/viewspace-2125115/
,如需转载,请注明出处,否则将追究法律责任。