我在存档然后删除fga_log$
表的某些部分时遇到问题。
这是脚本的基本功能
insert into fga_log_archive
select
...
from
sys.fga_log$;
begin
sys.dbms_audit_mgmt.set_last_archive_timestamp(
audit_trail_type => sys.dbms_audit_mgmt.audit_trail_fga_std,
last_archive_time => systimestamp
);
sys.dbms_audit_mgmt.clean_audit_trail(
audit_trail_type => sys.dbms_audit_mgmt.audit_trail_fga_std,
use_last_arch_timestamp => true
);
end;
/
dbms_audit_mgmt.clean_audit_trail的文档说:
此过程删除审计跟踪记录。该
CLEAN_AUDIT_TRAIL
过程通常在SET_LAST_ARCHIVE_TIMESTAMP
使用该过程设置审计记录的最后存档时间戳后调用。
因此,我希望通过调用从表中删除使用插入语句归档的记录。然而事实并非如此。我错过了什么吗?fga_log$
clean_audit_trail
编辑
选择的审计配置参数
select
substrb(parameter_name ,1,25) name,
substrb(parameter_value,1,20) value,
substrb(audit_trail ,1,20) trail
from
dba_audit_mgmt_config_params
;
是
NAME VALUE TRAIL
------------------------- -------------------- --------------------
DB AUDIT TABLESPACE SYSAUX STANDARD AUDIT TRAIL
DB AUDIT TABLESPACE AUDIT_LOG_TABLESPACE FGA AUDIT TRAIL
AUDIT FILE MAX SIZE 10000 OS AUDIT TRAIL
AUDIT FILE MAX SIZE 10000 XML AUDIT TRAIL
AUDIT FILE MAX AGE 5 OS AUDIT TRAIL
AUDIT FILE MAX AGE 5 XML AUDIT TRAIL
DB AUDIT CLEAN BATCH SIZE 10000 STANDARD AUDIT TRAIL
DB AUDIT CLEAN BATCH SIZE 10000 FGA AUDIT TRAIL
OS FILE CLEAN BATCH SIZE 1000 OS AUDIT TRAIL
OS FILE CLEAN BATCH SIZE 1000 XML AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL 999 FGA AUDIT TRAIL
编辑二
select * from v$version
返回
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
正如Mat所指出的,我遇到了应该在 11.2.0.2 版中修复的错误 9164488 ( )。
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL does not delete sys.aud$ and sys.fga_log$ tables [ID 9164488.8]
同时,在11.2.0.1 上运行时,我能够通过清除作业绕过该错误以完成这项工作。我一跑
clean_audit_trail
会像之前预期的那样完成这项工作。