[Oracle] ADDMレポート | Archive Redo Blog

Archive Redo Blog

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

Oracle 10g では自動ワークロードリポジトリ(AWR)という機能が追加され、問題の検出やチューニングのためにメモリー内の統計情報が定期的に(デフォルトで60分ごとに)スナップショットとして自動保存されるようになりましたが、これに加えてさらにAutomatic Database Diagnostic Monitor(ADDM)という自己診断機能も追加されています。

ADDMの自動実行
ADDMはAWRスナップショットが保存されるタイミングで自動的に起動され、直近2つのAWRスナップショット間の診断を行います。

ADDMの診断結果はADDMタスクとしてAWR内に格納され、Enterprise Managerでは最新の診断結果が[ホーム]に表示されるようになっています。

また、DBMS_ADVISOR.GET_TASK_REPORTファンクションを使えば、任意のADDMタスクを選択して診断結果を確認することができるようになっています。

SELECT DBMS_ADVISOR.GET_TASK_REPORT('ADDM:1152342487_1_429') FROM DUAL;
※自動作成されたADDMタスク名はV$DBA_ADVISOR_TASKSで確認できます。
※自動作成されたADDMタスクのレポートを取得するにはSYSユーザーで実行しなければならないようです。

ADDMの手動実行
ADDMは手動で起動すれば任意の2つのAWRスナップショットを指定して診断を行うことができます。

Enterprise Managerを使用する方法
1.[関連リンク]リージョンの[セントラル・アドバイザ]をクリックします。

2.[アドバイザ]リージョンの[ADDM]をクリックします。

3.「期間開始時刻」と「期間終了時刻」のスナップショットを選択し、[OK]をクリックします。

4.レポートをテキストで見る場合は、[レポートの表示]をクリックします。

DBMS_ADVISORパッケージを使用する方法
1.CREATE_TASKプロシージャを実行し、ADDMタスクを作成します。

2.SET_TASK_PARAMETERプロシージャを実行し、ADDMタスクのパラメータ(開始スナップショットID、終了スナップショットID)を設定します。

3.EXECUTE_TASKプロシージャを実行し、ADDMタスクを実行します。

4.GET_TASK_REPORTプロシージャを実行し、レポートを生成します。

(手順が煩雑で使う気になれませんので、コマンドの詳細は割愛します^^;)

スクリプトを使用する方法
1.SQL*Plusで以下のスクリプトを実行します。

SQL> @?/rdbms/admin/addmrpt

2.最初のスナップショットと最後のスナップショットのIDを入力します。

                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
orcl         ORCL               405 01 8月  2007 12:32     1
                                406 01 8月  2007 14:00     1
                                407 01 8月  2007 15:00     1
                                408 01 8月  2007 16:00     1
                                409 01 8月  2007 17:00     1
                                410 01 8月  2007 18:00     1
                                411 01 8月  2007 19:00     1
                                412 01 8月  2007 20:00     1
                                413 01 8月  2007 21:00     1
                                414 01 8月  2007 22:00     1
                                415 01 8月  2007 23:00     1
・
・
・

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
begin_snapに値を入力してください: 414
Begin Snapshot Id specified: 414

end_snapに値を入力してください: 415
End   Snapshot Id specified: 415



Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is addmrpt_1_414_415.txt.  To use this name,
press  to continue, otherwise enter an alternative.

3.レポートのファイル名を入力します。

report_nameに値を入力してください: addmrpt.txt


ADDMレポートの内容
ADDMレポートの出力例を少しだけ抜粋すると以下のような感じになります。

          DETAILED ADDM REPORT FOR TASK 'ADDM:1152342487_1_429' WITH ID 521
          -----------------------------------------------------------------
 
              Analysis Period: 03-8月 -2007 from 13:00:14 to 14:00:55
         Database ID/Instance: 1152342487/1
      Database/Instance Names: ORCL/orcl
                    Host Name: ORCL
             Database Version: 10.1.0.2.0
               Snapshot Range: from 428 to 429
                Database Time: 2695 seconds
        Average Database Load: .7 active sessions
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
FINDING 1: 32% impact (865 seconds)
-----------------------------------
REDOログ・バッファ領域待機により、データベース処理時間がかなり消費されました。
 
   RECOMMENDATION 1: DB Configuration, 32% benefit (865 seconds)
      ACTION: パラメータ"log_buffer"の値を32MBに設定し、REDOログ・バッファのサイズを増加してください。
 
   RECOMMENDATION 2: Host Configuration, 32% benefit (865 seconds)
      ACTION: オンラインREDOログ・ファイルに対するI/Oのパフォーマンス改善の可能性を調べてください。
      RATIONALE: オンラインREDOログ・ファイルへの書込みの平均サイズは114 KBで、平均時間は4ミリ秒/書込みでした。
 
   SYMPTOMS THAT LED TO THE FINDING:
      待機クラス"構成"により、データベース処理時間がかなり消費されました。 (47% impact [1271 seconds])
 
FINDING 2: 11% impact (294 seconds)
-----------------------------------
待機イベント "log file switch completion"(待機クラス 
"Configuration")により、データベース処理時間がかなり消費されました。
 
・
・
・


このように、ADDMレポートでは、発生したパフォーマンスの問題について、その原因、影響度、推奨事項が提示されます。

上記の例のように問題によっては解決策がズバリ提示されることもあります。
(そういう問題は大概設計ミスによるものですが...^^;)


従来、こういった問題はかなり専門的な知識がないと発見できなかったのですが、随分便利になったものです。



【注意!】 ADDMレポートを利用するためには、Enterprise Edition でかつ Oracle Diagnostics Pack のライセンスが必要になります。