リスナーのログを削除、移動する
リスナーのログファイルは、リスナープロセスがファイルをオープンし続けているため削除してはいけない。(Oracle 10g 時点)
通常はメンテナンス時に行う。稼動中に緊急処置として、どうしても移動や削除したい場合にはログの出力先を変更することで対応する。
少しくらいならリスナーのログが無くなっても良い環境の場合
#lsnrctl
... まず確認
LSNRCTL> show log_status (ログの状態確認)
LSNRCTL> show log_directory ( ディレクトリ位置 )
LSNRCTL> show log_file ( ファイル名 )
... ログの停止
LSNRCTL> set log_status off
# mv (log_directory/logfile) を (log_file)_YYYYMMDD.log に変更
LSNRCTL> set log_status on
すべてのログ保存が必要な環境の場合
# lsnrctl
... まず確認
LSNRCTL> show log_status (ログの状態確認)
LSNRCTL> show log_directory ( ディレクトリ位置 )
LSNRCTL> show log_file ( ファイル名 )
... ログファイルの一時変更
LSNRCTL> set log_file listener.tmp.log
# mv listener.log listener.old
... ログファイルの修復
LSNRCTL> set log_file listener.log
(1) # cat listener.old listener.tmp.log > listener_YYYYMMDD.log
or
(2) # cat listener.tmp.log >> listener.old
'>>' を '>' にタイプミスするとログが上書きの危険がある。
大量のログが発生して頻繁に処理に困るような場合にはファイル名にあらかじめ日付を埋め込んでおき、
ログをローテーションするようにしておくようなスクリプトを組んで管理することを検討する。
ただ、最近のハードディスクの大容量化から、稼働率 99.9..% の 24h×365日稼動のシステムでもなければ、神経質になる必要はないと思います。
ログ容量がギガ単位にならなければ、メンテナンス時間にアラートログやトレースファイルと一緒に処理すれば十分かと思います。
関連事項