سلام. محل پیش فرضی که audit در آن ذخیر می شود، Tablespace sysaux هست. با توجه به اینکه این محل، برای نگه داری extent های دیگر مربوط به سیستم استفاده می شود، توصیه می کنم محل audit رو به Tablespace دیگری منتقل کنیم:
یک Tablespace جدید می سازیم:
create tablespace AUDIT_TBS;
با اجرای دستور زیر محل پیش فرض AUDIT ها را عوض می کنیم:
BEGIN
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
AUDIT_TRAIL_LOCATION_VALUE => 'AUDIT_TBS'
);
END;
/
حالا یک JOB می سازیم تا بصورت خودکار، AUDIT های قبلی را پاک کند.
BEGIN
DBMS_AUDIT_MGMT.create_purge_job (
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
audit_trail_purge_interval => 7,
audit_trail_purge_name => 'PURGE_UNIFIED_AUDIT_TRAIL',
use_last_arch_timestamp => TRUE,
container => DBMS_AUDIT_MGMT.CONTAINER_ALL
);
END;
/
در صورتی که خط container را نگذاریم، مقدار پیش فرض current_container است.
این روش اطمینان حاصل میکند که لاگهای آدیت به طور خودکار هر ۷ روز پاکسازی میشوند و نیازی به اجرای دستی تنظیمات نیست.
در صورتی که بخواهیم کل محتوای unified_audit_trial پاک شود نیز می توانیم از دستور زیر استفاده کنیم:
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
use_last_arch_timestamp => FALSE);
END;
/