ドキュメントにこれは表示されませんが、Oracle 10.2監査証跡がいっぱいになるとどうなりますか?それ以上監査レコードを作成しないのですか?最も古いレコードを上書きしますか?データベースをシャットダウンしますか?それを変更する方法はありますか?
はい、10.2はサポートされていませんが、それを制御することはできません。そして、はい、私が直接知る必要がないはずの手順があります。しかし、監査操作が緊急に失敗した場合、監査証跡がいっぱいになった場合のデフォルトの動作は何ですか?
私のコメントをさらに拡張するために、sys.aud$
テーブルはデフォルトでSYSTEMテーブルスペースに格納されます。 SYSTEMテーブルスペースがいっぱいになると、データベースが停止します。
これを管理するために使用できるいくつかのオプションがありますが、これらはインストールされている10gのバージョンによって異なります。 10.2.0.5パッチ以降、sys.aud$
テーブルをユーザーテーブルスペースに移動できる新しいパッケージ DBMS_AUDIT_MGMT が含まれていました。このパッチレベルの場合は、監査テーブルを単純明快に移動します。ユーザーテーブルスペースがいっぱいになると、そのユーザーテーブルスペースに対する書き込み操作は停止しますが、SYSTEMテーブルスペースがいっぱいになるように他のすべてがダウンすることはありません。この機能はバックポートされましたが、すべての10.2バージョンに対応しているわけではありません。 support.Oracle.com でドキュメントID 731908.1を確認して、すべての詳細を取得できます。
10.2.0.5にアップグレードする機能がない場合は、他の方法でsys.aud$
テーブルを定期的にパージして、テーブルが拡大し続けてスペースを消費しないようにする必要があります。手に負えなくなり、テーブルを「縮小」する必要があるとわかった場合は、空白を解放してテーブルスペースに戻すために、テーブルを切り詰める必要があるでしょう。 行の移動を有効にしてテーブルを縮小する の一般的なトリックを使用してこのファイルを縮小しようとしましたが、レコードはsys.aud$
テーブルの最後に追加され、定期的に追加されるため、多くの場合、ほとんど縮小しません。そのため、ここではTRUNCATE操作がスペースを解放する最も効果的な方法であることがよくあります。
最後に、最後のオプションは、監査を無効にすることです。必要ない場合は、おそらくこれが最も簡単なオプションです。
データベースは基本的にフリーズし、監査ログに書き込む新しい接続やトランザクションを許可しません。あなたの唯一の賭けは、サーバーに直接接続することです。 "sqlplus/as sysdba"次にスペースを追加します(または監査がそのデータベースにとって重要でない場合はスペースを切り捨てます)。
このため、aud $をバックアップして定期的に切り捨てるスクリプトがあります。本番環境でひどい凍結が発生することを望まない...
また、次のようにaud $をSYSTEMから移動したいとします。
alter table sys.aud$ move tablespace aud_data;
alter table sys.aud$ move lob (sqlbind) store as (tablespace aud_data);
alter table sys.aud$ move lob (sqltext) store as (tablespace aud_data);
alter index sys.I_AUD1 rebuild tablespace aud_idx;