aud$表のメンテナンスについて
audit_trailをdbに設定して何のメンテナンスもしていなかったのでaud$表が肥大していました。
とりあえず今のところは監査ログをとらなくてもいいかなと思いマニュアルの手順に従って操作を行ったのですが、
間違った操作を行ったのでは?と心配しています。
行った操作は次のとおりです。
1.audit_trailをNONEに設定
ALTER SYSTEM SET audit_trail=NONE scope=spfile;
2.データベース再起動
3.aud$の移動先の表領域の設定
BEGIN
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
AUDIT_TRAIL_LOCATION_VALUE => '移動先表領域名');
END;
4.監査証跡の初期化
BEGIN
DBMS_AUDIT_MGMT.INIT_CLEANUP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
DEFAULT_CLEANUP_INTERVAL => 12 );
END;
→これでaud$表が移動先表領域に移動されました。
5.aud$表の削除
DROP TABLE AUD$;
削除してよかったのかな?と思い、再びaudit_trailをdbに設定してみると、SYS以外のユーザーでログインを試みると
ora-02002:表がありません
とエラーが発生し、ログインできません。
とりあえず、audit_trailをNONEに設定すると正常にログインできはするのですが、
aud$表を削除したのはまずかったでしょうか??
同じバージョンのDBが別にあるのでそこからaud$をエクスポート・インポートしたほうがよいでしょうか?
今後、再びaudit_trailをDBにするときはどうしたらよいのでしょうか?
どなたかご教示願います。