我想从AUD$ table中删除一个月以上的记录,但是我必须在dba_audit_trail上这样做,因为我必须根据dba_audit_trail的时间戳完成这项工作。我找不到任何明确的解决办法。
CREATE OR REPLACE PROCEDURE CU
AS
BEGIN
execute immediate 'delete from SYS.AUD$ where TIMESTAMP > SYSDATE - 30;
END;
/
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'CLEANUP_AUDIT',
job_type => 'STORED_PROCEDURE',
job_action => 'BEGIN CU(); END;',
start_date => 'I will set it after.',
repeat_interval => 'I will set it after.',
enabled => 'TRUE',
comments => 'I will set it after.');
END;
/或者我可以直接在dba_audit_trail上删除吗?
致以敬意,
发布于 2020-04-27 19:06:10
首先执行INIT_CLEANUP,只需要使用一次。接下来,使用CREATE_PURGE_JOB和use_last_arch_timestamp => true执行D3,它创建用于清理审计跟踪的计划作业,也只需要使用一次。最后,您需要使用SET_LAST_ARCHIVE_TIMESTAMP来处理最后一个归档时间戳,您可以简单地对其进行调度并将其设置为sysdate-30,或者调用它作为归档过程的一部分,并将其设置为最后一个归档的时间戳(如果有的话)。
创建审计跟踪的专用表空间并将其与SET_AUDIT_TRAIL_LOCATION放在一起也是一个好主意。
https://dba.stackexchange.com/questions/265944
复制相似问题