Oracle

如何從 Oracle 11gR2 中的 dba_audit_trail 中刪除記錄

  • April 27, 2020

我想從 AUD$ 表中刪除超過一個月的記錄,但我必須在 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 嗎?

問候,

DBMS_AUDIT_MGMT

首先執行INIT_CLEANUP,您只需要使用一次。接下來執行CREATE_PURGE_JOBwith use_last_arch_timestamp => true,它創建用於清理審計跟踪的計劃作業,也只需要使用一次。最後,您需要注意使用 推進最後存檔時間戳SET_LAST_ARCHIVE_TIMESTAMP,您可以簡單地安排並將其設置為sysdate-30,或者將其作為存檔過程的一部分呼叫並將其設置為最後存檔的時間戳(如果您使用的話)。

為您的審計跟踪創建一個專用表空間並將其與SET_AUDIT_TRAIL_LOCATION.

引用自:https://dba.stackexchange.com/questions/265944