アラートログにはOracleが出力する様々なエラー情報が含まれています。そのためOracleの監視項目の中でも、アラートログの監視は非常に大切です。しかしながら自分でいちいち確認するのはとても面倒な作業です。そんな方に朗報!あなたの代わりにアラートログを監視して、エラーが発生したら即座にメールで通知してくれるシェルをご紹介いたしましょう!
≫
監視スクリプトはこちら(ora_alert_watch.lzh) 
<特徴>アラートログを監視して「ORA-」の文字を検出すると、エラー内容をメールで管理者へ通知することが出来ます。
<動作環境>LINUXやUNIXな環境でCRONによるシェルの実行。(シェルで記述してあるため、Windowsは未対応)
<スクリプトの使用方法>(1)ローカルパソコン上での作業
ダウンロードしたora_alert_watch.lzhを解凍して、ora_alert_watch.sh内の変数を下記の表に従って編集ください。
| ORACLE_BASE | インストールしたORACLE環境に合わせてください | ORACLE_HOME | インストールしたORACLE環境に合わせてください | ORACLE_SID | 監視対象とするSIDを指定して下さい | alert_file | Oracleアラートログをフルパスで指定してください | mailaddress | エラー発生時のメール送信先を指定してください | MachineId | スクリプトを実行するマシンIDを命名してください | tools_dir | スクリプトを置くディレクトリ名を指定してください | log_dir | スクリプトが出力するディレクトリ名を指定してください | log_file | スクリプトが出力するログファイル名を指定してください | | 0 | 正常終了 | 1 | 異常終了 | メール通知 | 異常終了時にエラー内容をメール通知 | ログ | 異常終了時に日時とエラー内容を出力 |
|
(2)設定後、ファイルをサーバー上の任意のディレクトリへUPします。
(3)DBAユーザ(oinstall、oracle等)またはrootユーザでクーロンを設定します。またエラー発生時の迅速な検知/通知を行うためには数分単位での実行をお奨めいたします。
# crontab -e
で、例えば1分おきの間隔でアラートログの監視を行いたければ、
0-59/2 * * * * /フルパス/ora_alert_watch.sh
みたく設定すればOKです。
- スポンサーリンク -
コメントやシェアをお願いします!
シェルではなくシェルスクリプトと表記してください。
イタ さん>AIX を触ったことがないわけですが、このスクリプトがエラーでなければ正常に動作すると思います。
当シェルの利用を検討し、現在テスト環境で試行中です。
今のところ問題はないように思われるのですが、
IBMのAIX 4.3.3 でも利用できそうでしょうか?
(UNIXについては、あまり知識がありません。)
よろしくお願い致します。
pontarouさん>残念ながらORA-01017はアラートログには残らないです。アプリ側でエラーハンドリングするようなコードを書いてやる必要があるかと思います。
お世話になります。
ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
のようなエラーも、アラートログに載るでしょうか?
よろしくお願いします。