[Oracle] ADRCIを使ってXML形式のアラート・ログを参照する | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

11g からアラート・ログの出力先が自動診断リポジトリ(ADR)の構造にしたがって変更されましたが、それに加えて従来のテキスト形式のアラート・ログ以外に以下のような XML 形式のアラート・ログが提供されるようになっています。


/u01/app/oracle/diag/rdbms/orcl/orcl/log.xml
<msg time='2009-08-21T18:16:51.878+09:00' org_id='oracle' comp_id='rdbms'
 msg_id='opistr_real:887:3971575317' type='NOTIFICATION' group='startup'
 level='16' host_id='orasrv1.hogehoge.co.jp' host_addr='10.10.10.10'
 pid='19993' version='1'>
 <txt>Starting ORACLE instance (normal)
 </txt>
</msg>
<msg time='2009-08-21T18:16:52.270+09:00' org_id='oracle' comp_id='rdbms'
 msg_id='ksunfy:13802:2937430291' type='NOTIFICATION' group='startup'
 level='16' host_id='orasrv1.hogehoge.co.jp' host_addr='10.10.10.10'
 pid='19993'>
 <txt>LICENSE_MAX_SESSION = 0
 </txt>
</msg>
.
.
.

しかし、XML 形式のアラート・ログは直接参照してもご覧の通り非常に見にくいです。


この XML 形式のアラート・ログを従来のテキスト形式で参照するには、ADRCI というコマンドライン・インターフェースを使用します。


$ adrci

ADRCI: Release 11.1.0.7.0 - Production on 金 8月 21 18:54:44 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

ADR base = "/u01/app/oracle"
adrci> 

ADRCI を起動すると、ADRCI プロンプトが表示されますので、SHOW ALERT コマンドを実行します。

adci > show alert

ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
*************************************************************************
Output the results to file: /tmp/alert_24937_4739_orcl_1.ado
2009-08-21 18:16:51.878000 +09:00
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Shared memory segment for instance monitoring created
Picked latch-free SCN scheme 3
Autotune of undo retention is turned on.
IMODE=BR
ILAT =42
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 11.1.0.7.0.
Using parameter settings in client-side pfile /u01/app/oracle/admin/orcl/pfile/init.ora on machine orasrv1.hogehoge.co.jp
System parameters with non-default values:
  processes                = 150
  sessions                 = 190
  nls_language             = "JAPANESE"
  nls_territory            = "JAPAN"
  memory_target            = 1024M
  control_files            = "/u01/app/oracle/oradata/orcl/control01.ctl"
  control_files            = "/u01/app/oracle/oradata/orcl/control02.ctl"
  control_files            = "/u01/app/oracle/oradata/orcl/control03.ctl"
.
.
.

SHOW ALERT コマンドを実行すると、エディタが起動し、テキスト形式のアラート・ログが表示されます。

ここで起動するエディタは特に設定していなければ、Linux の場合は vi、Windows の場合は notepad となっているようです。


また、SHOW ALERT コマンドにはいくつかのオプションがあり、これらのオプションを活用することによって、表示するログの内容を絞り込むことができるようになっています。

例)最後の 100 行を表示する。

show alert -tail 100

例)最新のエントリをリアルタイムで監視する。

show alert -tail -f

例)ORA-600 を含むエントリのみを表示する。

show alert -p "MESSAGE_TEXT LIKE '%ORA-600%'"


なお、SHOW ALERT コマンドを実行した際、表示できる ADR ホームが複数ある場合、以下のような選択メニューが表示されるので、この中から表示したいものを選択します。

Choose the alert log from the following homes to view:

1: diag/clients/user_oracle/host_123456789_11
2: diag/tnslsnr/orasrv1/listener
3: diag/rdbms/orcl/orcl
Q: to quit

Please select option:

diag/clients/~ というのはクライアントのログ(従来の sqlnet.log )、diag/tnslsnr/~ というのはリスナーのログ(従来の listener.log )、diag/rdbms/~ というのはインスタンスのアラート・ログの ADR ホームになります。

※コマンドを実行するたびに ADR ホームを選択するのがわずらわしい場合は、コマンドを実行する前に SET HOMEPATH コマンドで使用する ADR ホームを SET HOMEPATH コマンドを設定しておきます。

set homepath diag/rdbms/orcl/orcl


このことからもわかるように、ADR では Oracle が出力する様々なログを集中管理することができることが大きな利点となっています。

うまく活用できるよう知識を深めておきたいところです。