ASM インスタンスの監査ファイルの宛先ディレクトリは、定期的に管理されていない場合、膨大な数のファイルを含むように成長する可能性があります。非常に多くのファイルがあると、ファイル システムの空きディスク領域または inode が不足したり、ファイル システムのディレクトリ スケーリング制限により Oracle の実行が非常に遅くなる可能性があり、ASM インスタンスがハングアップしているように見えることがあります。
この投稿では、Linux syslog 機能を使用して ASM 監査レコードを管理し、ASM 監査レコードが audit_dump_dest 内の個々のファイルではなく、オペレーティング システムの syslog 機能によって記録されるようにする方法について説明します。 ディレクトリ。
これらの手順は、すべてのデータベース サーバーの ASM インスタンスに対して実行する必要があります。このドキュメントでは、ASM インスタンスのみの監査レコードを管理する方法について説明します。
構成
これらの手順は、すべてのデータベース サーバーの ASM インスタンスに対して実行する必要があります。
ステップ 1 – ASM 初期化パラメータ AUDIT_SYSLOG_LEVEL および AUDIT_SYS_OPERATIONS を設定する
ASM初期化ファイルで、パラメータAUDIT_SYSLOG_LEVELおよびAUDIT_SYS_OPERATIONSを次の値に設定します:
AUDIT_SYSLOG_LEVEL='local0.info' AUDIT_SYS_OPERATIONS=TRUE
ステップ 2 – ASM 監査用に /etc/syslog.conf を構成する
syslog 構成ファイル /etc/syslog.conf を構成します または /etc/rsyslog.conf 次の 2 つの変更を加えて、ASM 監査用に:
1. /etc/syslog.conf または /etc/rsyslog.conf に次の行を追加します
local0.info /var/log/asmaudit.log
2. /etc/syslog.conf の /var/log/messages のログを構成する行に、local0.none を追加します。例:
*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
ステップ 3 – logrotate を構成して syslog ログ ファイルを管理する
Linux の logrotate ユーティリティを使用して、ASM 監査用の syslog ログ ファイルのサイズと数を管理します。次の内容でファイル /etc/logrotate.d/asmaudit を作成します:
# vi /etc/logrotate.d/asmaudit /var/log/asmaudit.log { weekly rotate 4 compress copytruncate delaycompress notifempty }
ステップ 4 – ASM インスタンスと syslog サービスを再起動する
変更を有効にするには、ASM インスタンスと syslog サービスを再起動する必要があります。 「crsctl stop」および「crsctl start」コマンドを使用してグリッド インフラストラクチャを停止および開始することにより、ASM インスタンスが再起動されます。このアクションでは、データベース インスタンスをシャットダウンする必要があります。
# GRID_HOME/grid/bin/crsctl stop cluster # GRID_HOME/grid/bin/crsctl start cluster
syslog サービスを再起動するには、「service syslog restart」コマンドを実行します:
# service syslog restart Shutting down kernel logger: [ OK ] Shutting down system logger: [ OK ] Starting system logger: [ OK ] Starting kernel logger: [ OK ]
ステップ 5 – ASM 監査レコードが /var/log/asmaudit.log に作成されていることを確認する
ASM への特権付き接続 (SYSDBA または SYSASM 接続など) によって、次のようなエントリが /var/log/asmaudit.log に作成されることを確認します:
Oracle Audit[8738]: LENGTH : '142' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[5] 'oracle' CLIENT TERMINAL:[0] '' STATUS:[1] '0' DBID:[0]
トラブルシューティング
syslog 監査レコードが /var/log/messages に記録されている場合は、/etc/syslog.conf が /var/log/messages エントリに「local0.none」を追加するように適切に構成されていることを確認してください。