はじめに
Oracle 11gサーバ(11.1.0.7)のOracleアラートログ(alert.log)をtail -fで表示するスクリプトについて記載致します。
Oracle 11gサーバの運用管理で、Oracleアラートログを見る事が多いのですが、Oracleのアラートログは深い階層に出力されるので、毎回手打ちでログファイルを開くのが面倒ですので、アラートログをtail -fで表示するスクリプトを利用しております。
tail -fでアラートログを表示すると、アラートログにログが追記された場合、追記されたログの内容が随時表示されます。
Oracle環境変数について
Oracle 11gサーバのoracleユーザの.bash_profileで、以下のような環境変数が設定されているとします。例えば以下のような値が設定されているとします。
[oracle@example-oracle-11g ~]$ echo $ORACLE_BASE
/oracle_example/opt/oracle/app/oracle
[oracle@example-oracle-11g ~]$
[oracle@example-oracle-11g ~]$ echo $ORACLE_SID
testsid
[oracle@example-oracle-11g ~]$
Oracleアラートログをtail -fで表示するスクリプト
以下のようなシェルスクリプトをホームディレクトリ等に作成します。
[oracle@example-oracle-11g ~]$ vi tail_alert_log.sh
tail_alert_log.sh
#!/bin/sh
ALERT_LOG="${ORACLE_BASE}/diag/rdbms/${ORACLE_SID}/${ORACLE_SID}/trace/alert_${ORACLE_SID}.log"
if [ -f ${ALERT_LOG} ] ; then
tail -f ${ALERT_LOG}
fi
[oracle@example-oracle-11g ~]$ chmod 755 tail_alert_log.sh
Oracleアラートログの表示例
先ほど作成したスクリプトを実行しますと、tail -fでOracleアラートログの内容が表示されます。
[oracle@example-oracle-11g ~]$ ./tail_alert_log.sh
(省略)
Wed Jan ** **:**:** 2015
Thread 1 advanced to log sequence XXXXXX (LGWR switch)
Current log# 4 seq# XXXXXX mem# 0: /XXXXXXXXXX/testsid/redogXXm01.log
Current log# 4 seq# XXXXXX mem# 1: /XXXXXXXXXX/testsid/redogXXm02.log
Wed Jan ** **:**:** 2015
Archived Log entry XXXXXX added for thread 1 sequence XXXXXX ID XXXXXXXXXXXXX dest 1: