oracle 11.2.0.1审计表AUD$清理
数据库版本:
ORACLE 11.2.0.1
之前一直常用的版本是11.2.0.4,按经验执行执行如下命令清理:
TRUNCATE TABLE SYS.AUD$ reuse storage;
但是报错了,纳闷,不解啊,这是为什么呢?
尝试统计以下aud$表的数据量,是可以正常统计出来的。
见鬼了,这究竟是为什么呢,于是,想着从dba_objects查询表的OWNER,果然,原来是OWNER是SYSTEM,而不是SYS,SYS的只是一个同义词,所以执行trncate table的时候报错了。
知道原因后,后面的就好处理,直接改成SYSTEM顺利执行
至此,审计表清理完成。
下一步是迁移审计表空间。
SQL> BEGIN
2 DBMS_AUDIT_MGMT.set_audit_trail_location(
3 audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
4 audit_trail_location_value => 'TBS_AUDIT');
5 END;
6 /
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_AUDIT_MGMT.set_audit_trail_location(
3 audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,
4 audit_trail_location_value => 'TBS_AUDIT');
5 END;
6 /
PL/SQL procedure successfully completed.
SQL> SELECT table_name, tablespace_name FROM dba_tables WHERE table_name IN ('AUD$', 'FGA_LOG$') ORDER BY table_name;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
AUD$ TBS_AUDIT
FGA_LOG$ TBS_AUDIT