تغییر محل پیش فرض audit در unified_audit_trail و کنترل حجم آن

سلام. محل پیش فرضی که 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;

/