Oracle/ADR

ADR概要

ADR(Automatic Diagnostic Repository)は11gからの新機能で、ログファイルを含むすべての診断データを一元管理するようになった。

ログ格納先

ファイルOracle 10gOracle11g
アラート・ファイル(XML)-$ADR_HOME/alert
コア・ダンプ・ファイルcore_dump_dest$ADR_HOME/cdump
インシデント・ダンプ・ファイル-$ADR_HOME/incident
ヘルス・チェック-$ADR_HOME/hm
アラート・ファイル(テキスト)background_dump_dest$ADR_HOME/trace
バックグラウンド・ダンプ・ファイル
ユーザー・ダンプ・ファイル
  • $ADR_HOME は $ADR_BASE/diag/<製品タイプ>/<製品ID>/<インスタンスID>
  • $ADR_BASE は以下の優先順位で決まる(DBと、Gridで値が異なる(DBは、/u01/app/oracle GRIDは、/u01/app/gridなど)ので注意)
    • DIAGNOSTIC_DEST パラメータの値
    • ORACLE_BASE環境変数の値
    • $ORACLE_HOME/log
  • select * from V$DIAG_INFO でフルパスが確認できる

ADRディレクトリ階層

ADRベース            /u01/app/oracle や /u01/app/grid
 └ diag
   ├- asm          ASMインスタンス用。rdbms同様にASMインスタンス名のサブディレクトリがADRホーム
   ├- clients        クライアント処理用。traceディレクトリに sqlnet.log
   ├- tnslsnr        リスナー用。traceサブディレクトリに listener.log ※ ADRディレクトリはGRID (例) /u01/app/grid/diag/tnslsnr/listener.log
   ├- ...
   └- rdbms
     └- <DB名>       ADRホーム
       └- <SID名>
         ├- alert   XML形式のアラートログ
         ├- cdump   コアダンプ
         ├- incpkg   インシデントパッケージ
         ├- incident  インシンデントダンプ(インシデントID毎のサブディレクトリあり)
         ├- ir     データリカバリアドバイザによる修復スクリプト
         ├- hm     ヘルスモニターの結果
         └- trace   テキスト形式のアラートログ、バッググラウンドプロセスのトレースファイル、ユーザートレース

クラスターウェア関連のログはこちら

 

ADRコマンド

$ORACLE_HOME/bin/adrci [script=<adrciコマンドを列挙したファイル>]
adrci> help でコマンド一覧表示
コマンド説明
SET HOME使用するADR_HOMEを digaからのパスで設定する。(diagは省略可能)
SHOW ALERTアラートファイルをエディタで表示する。使用するエディタは、SET EDITOR エディタ で設定できる
SHOW INCIDENTインシデント情報
SHOW PROBLEMプロブレム情報
SHOW TRACEFILEトレースファイル情報
SHOW REPORTレポート情報
SHOW CONTROLパージ・ポリシー情報
SHOW BASEADRベースディレクトリ
SHOW HOMEADIRホームディレクトリ
SHOW INCDIRインシデントディレクトリ

出力サンプル

adrci> show home
ADR Homes:
diag/rdbms/orcl11/orcl11
diag/tnslsnr/mai/listener
adrci> set home diag/rdbms/orcl11/orcl11
adrci>
adrci> show home
ADR Homes:
diag/rdbms/orcl11/orcl11
adrci>
adrci> show problem
ADR Home = /opt/app/oracle/diag/rdbms/orcl11/orcl11:
*************************************************************************
PROBLEM_ID      PROBLEM_KEY                         LAST_INCIDENT    LASTINC_TIME              
-------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
1          ORA 4030                          48233        2014-05-18 10:53:14.509000 +09:00   
1 rows fetched
adrci> show incident
ADR Home = /opt/app/oracle/diag/rdbms/orcl11/orcl11:
*************************************************************************
INCIDENT_ID     PROBLEM_KEY                         CREATE_TIME               
-------------------- ----------------------------------------------------------- ----------------------------------------
48233        ORA 4030                          2014-05-18 10:53:14.509000 +09:00   
1 rows fetched

 

ヘルスチェック

自己診断機能としてDBファイル、メモリー、トランザクション、メタデータなどの一貫性に不整合がある場合、自動的にチェック(ヘルスチェック)が動作する。手動での実行も可能。

DBMS_HMパッケージによるヘルスチェック実行

チェック対象チェック名(run_name)説明
DB構造DB Structure Integrity Checkアクセス出来ないファイルや破損状態、不整合があるとエラー検出
データブロックData Block Integrity Checkチェックサムエラー、ブロック内の先頭と末尾の不一致、論理的不整合などのブロック破損を検出
REDORedo Integrity CheckREDOログと、アーカイブログファイルの破損状態を検出
トランザクションTransaction Integrity Check指定したトランザクションのロールバック操作で発生する可能性のあるUNDO破損を検出破損が検出されるとSMONとPMONを使用し可能な限りトランザクションをリカバリする
UNDOUndo Segment Integrity Check指定したUNDOセグメントのUNDO破損を検出破損が検出されるとSMONとPMONを使用し可能な限りUNDOデータをリカバリする
ディクショナリDictionary Integrity CheckTAB$やCOL$などの中心となるディクショナリの整合性を検証する
-- ディクショナリの整合性チェック
exec DBMS_HM.RUN_CHECK (
    check_name   => 'Dictionary Integrity Check',
    run_name     => 'DicCheck',
    timeout      => 0,
    input_params => 'TABLE_NAME=tab$' );

-- ヘルスチェック結果をファイルへ出力
BEGIN
DBMS_ADVISOR.CREATE_FILE(
    DBMS_HM.GET_RUN_REPORT(
        run_name    => 'DicCheck',
        report_type => 'HTML' ),
    'DATA_PUMP_DIR','hm_DictCheck.html');
END;
/

-- ADRCI での確認
adrci> SET HOME diag/rdbms/orcl11/orcl11
adrci> SHOW HM_RUN
adrci> CREATE REPORT HM_RUN DicCheck
adrci> SHOW REPORT HM_RUN DicCheck
adrci> PURGE -AGE 60 TYPE hm


 

IPSパッケージ(障害情報をパッケージ化したファイル)の作成

ロジカル・パッケージの作成

IPS CREATE PACKAGE               ‥‥空パッケージ
IPS CREATE PACKAGE INCIDENT <インシデントID>  ‥‥インシデント単位
IPS CREATE PACKAGE PROBLEMKEY <プロブレムKEY>  ‥‥プロブレムKEY単位
IPS CREATE PACKAGE PROBLEM <プロブレムID>    ‥‥プロブレムID単位
IPS CREATE PACKAGE SECONDS <秒数>        ‥‥指定秒数前までの全インシデント
IPS CREATE PACKAGE TIME <開始> TO <終了>    ‥‥指定時刻範囲の全インシデント(時刻はインシデントファイルのフォーマットに合わせて指定)
※オプション指定可能 CORRELATE {ALL | TYPICAL | BASIC} の診断レベルを指定。デフォルトは「TYPICAL」


ロジカル・パッケージに情報の追加

IPS ADD INCIDENT <インシデントID> PACKAGE <パッケージID>
IPS ADD PROBLEMKEY <プロブレムKEY> PACKAGE <パッケージID>
IPS ADD FILE <ファイル名> PACKAGE <パッケージID>


フィジカル・パッケージ(ロジカル・パッケージをZIPで固めたもの)の作成

IPS GENERATE PACKAGE <パッケージID> IN <ディレクトリ>       ‥‥パッケージ全体作成
IPS GENERATE PACKAGE <パッケージID> IN <ディレクトリ> INCREMENTAL ‥‥パッケージ差分作成
※ORA<プロブレムKEY>_<ロジカル・パッケージ作成時刻>_{モード}_<シーケンス>.zip が作成される


その他のIPSコマンド

コマンド説明
IPS ADD NEW INCIDENTS PACKAGE指定したパッケージの問題について新しい最新インシデントを3つ(IPSパラメータ:NUM_LATE_INCIDENTSで指定)まで追加します
IPS COPY IN FILE外部ファイルをADRに追加。追加した外部ファイルをパッケージに追加するには別途 IPS ADD FILEコマンドが必要
IPS COPY OUT FILEADRから外部ファイルにコピーする
IPS FINALIZE PACKAGE指定したパッケージに関連するファイルを追加する。状態モニターによりヘルスチェックの結果が追加され最新のトレースファイルなどが追加される
IPS SET CONFIGURATIONIPS標準オプションを設定
IPS SHOW CONFIGURATIONIPS標準オプションの表示
IPS GET MANIFEST FROM FILEパッケージのZIPファイルからマニフェストを取得して表示
IPS GET METADATAパッケージのZIPファイルからメタデータを抽出して表示します。
IPS REMOVE既存のパッケージから特定の内容を削除する。INCIDENT、PROBLEMKEYオプションでインシデントや問題を指定可能
IPS DELETE PACKAGEパッケージを削除


不要になったADR内のデータを削除する

PURGE -i <インシデントID>


OEMから作成
ソフトウェアとサポート -> サポート・ワークベンチ から作成可能

 

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-02-03 (火) 23:10:46 (931d)