ADR Command Interpreter (ADRCI)使用ガイド
Oracle 11gからログ関連を広くXMLフォーマットを活用し、 一目でわかりづらくなりました。そこで登場したのはADRCIです。 本説明はOracle 11g R2で確認しています。
Automatic Diagnostic Repository (ADR)はデータベース診断ログ、トレースファイルを格納する場所で、 パラメータDIAGNOSTIC_DESTに保存場所(ADR Base)を設定できます。 SQL> show parameter DIAGNOSTIC_DEST NAME TYPE VALUE ------------------- ----------- ---------------- diagnostic_dest string /u01/oracle/app 一般的にORACLE_BASEと同じ場所となっています。 ORACLE_BASEが設定されていない場合、ORACLE_HOME/logに格納されます。
ADRCIではログの参照、レポートの生成、スクリプトの実行が可能です。 診断ファイルについて下記のSQLから参照可能です: SELECT name,value FROM v$diag_info; ADRCIのコマンドは大文字小文字区別しないが、検索文字列を利用する場合区別します。 [oracle@CentOS53 bbed]$ adrci ADRCI: Release 11.2.0.1.0 - Production on Thu Oct 29 11:12:02 2009 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. ADR base = "/u01/oracle/app" adrci>
1、アラートログの参照:
adrci> show alert Choose the alert log from the following homes to view: 1: diag/rdbms/o11g2/o11g2 2: diag/tnslsnr/CentOS53/listener Q: to quit Please select option: 1:データベースのアラートログを参照する(viで開く) 2:リスナーログの参照(viで開く) q:戻る 最新20行を参照する場合: adrci> show alert -tail 20 DIA-48449: Tail alert can only apply to single ADR home Oops,エラー出ました。 これはどっちのログから検索するかわからないからHOMEを設定しろというエラーですね adrci> show alert Choose the alert log from the following homes to view: 1: diag/rdbms/o11g2/o11g2 2: diag/tnslsnr/CentOS53/listener Q: to quit Please select option: q adrci> set home diag/rdbms/o11g2/o11g2 ; show alert -tail 20 で大丈夫です。 特定のORAエラーを検索する: adrci> SHOW ALERT -P "MESSAGE_TEXT LIKE '%ORA-600%'"
2、問題点の参照:
adrci> show problem ADR Home = /u01/oracle/app/diag/rdbms/o11g2/o11g2: ************************************************************************* 0 rows fetched ADR Home = /u01/oracle/app/diag/tnslsnr/CentOS53/listener: ************************************************************************* 0 rows fetched
3、その他イベントの参照:
adrci> show incident ADR Home = /u01/oracle/app/diag/rdbms/o11g2/o11g2: ************************************************************************* 0 rows fetched ADR Home = /u01/oracle/app/diag/tnslsnr/CentOS53/listener: ************************************************************************* 0 rows fetched 参照内容を外部ファイルへ出力する: adrci> spool report adrci> spool Current spooling to report adrci> show problem ADR Home = /u01/oracle/app/diag/rdbms/o11g2/o11g2: ************************************************************************* 0 rows fetched ADR Home = /u01/oracle/app/diag/tnslsnr/CentOS53/listener: ************************************************************************* 0 rows fetched adrci> spool off ローカルではreport.adoのレポートファイルが作成されました。
4、トレースファイル一覧の参照:
adrci> show tracefile diag/rdbms/o11g2/o11g2/trace/o11g2_ora_30606.trc ...... 特定のトレースファイルを検索する: adrci> show tracefile %mmon% diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_14751.trc diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_14623.trc diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_3064.trc diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_16625.trc diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_30520.trc パスを指定したトレースファイルの検索: adrci> show tracefile %mmon_14751% -PATH <ファイルPATH> 最新時間順でトレースファイルをソート表示する: adrci> show tracefile %mmon% -RT 28-OCT-09 09:34:11 diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_3064.trc 27-OCT-09 11:03:28 diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_16625.trc 23-OCT-09 11:12:27 diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_30520.trc 23-OCT-09 10:33:38 diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_14751.trc 23-OCT-09 09:58:46 diag/rdbms/o11g2/o11g2/trace/o11g2_mmon_14623.trc
「;」で区切れば複数のコマンドを一気に実行可能です(スクリプト) adrci> show homes;show base; echo '2009/10/25'; ADR Homes: diag/rdbms/o11g2/o11g2 diag/tnslsnr/CentOS53/listener ADR base is "/u01/oracle/app" 2009/10/25 *起動時にSCRIPT=script.txtでスクリプトを実行できます。 OSのコマンドを実行する: adrci> host "id" uid=440(oracle) gid=200(oinstall) 所属グループ=200(oinstall),201(dba)
公式のドキュメントを参考に: http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05768-02/adrci.htm#11969 個人的にSQLPLUSのような「ed」コマンドがほしいですね; 毎回スクリプトを編集すると host "vi script.txt" となります;