[Oracle Database] リアルタイムADDMの確認手順(SQL*Plus編)

本記事の目的

リアルタイムADDMに関するメモです。

 

機能概要

マニュアル「2日でデータベース管理者」10 データベースの監視およびチューニングより、https://docs.oracle.com/cd/F19136_01/admqs/monitoring-and-tuning-the-database.html#GUID-4451EB5B-165F-4333-8941-489E5E5B3ECE

リアルタイムADDMは、リアルタイムで自動的にデータベースを監視します。

リアルタイムADDMでは、次のような多大な影響を与える一時的な問題がアプリケーション・パフォーマンスを脅かす前に、それらを事前に検出して診断します。

  • 高CPU
  • I/Oのスパイク
  • メモリー
  • インターコネクトの問題
  • ハングおよびデッドロック

リアルタイムADDMは発生する可能性のあるパフォーマンスの問題を検出すると、データの収集をトリガーします。データはレポート・リポジトリ(AWRの一部)に保存されます。リアルタイムADDMレポートをEM Expressから表示すると、分析が実行され、結果と推奨事項が作成されます。リアルタイムADDMレポートはAWRに格納されるため、一定期間の問題の繰返しの識別に役立ちます。

 

ADDMレポート出力手順

※Enterprise Managerを利用した方が手軽に確認できるが、今回はSQL*Plusを利用する手順を確認。

 

 

ADDMレポートの取得状況確認

ADDMレポートの取得状況は、DBA_HIST_REPORTSを見れば確認できる。

https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DBA_HIST_REPORTS.html#GUID-767A0EFB-B46F-4CFF-A4B9-580E9B96CFE7

DBA_HIST_REPORTS displays information about XML reports captured into Automatic Workload Repository (AWR).

The reports themselves belong to components such as SQL Monitor, DBOP, and Real-Time ADDM.

Each XML report contains details about some activity of a component. For example, a SQL Monitor report contains a detailed report about a particular execution of a SQL statement, or a Real-Time ADDM report contains system performance data analyzed by Real-Time ADDM.

 

・18c環境での確認例

SQL> SELECT snap_id, report_id, TO_CHAR(generation_time,'YY-MM-DD HH24:MI:DD')
FROM dba_hist_reports WHERE component_name='perf'

SNAP_ID REPORT_ID TO_CHAR(GENERATIO
---------- ---------- -----------------
1275 4901 19-06-30 06:00:30
1339 5021 19-07-02 22:00:02
1363 5067 19-07-03 22:00:03
1387 5112 19-07-04 22:00:04
1411 5164 19-07-05 22:00:05
1419 5197 19-07-06 06:00:06
1443 5351 19-07-07 06:00:07★今回はこれを出力してみる

 

 

ADDMレポートの出力

rtaddmrpti.sqlにて出力可能。

・18c環境での確認例

SQL> @?/rdbms/admin/rtaddmrpti


Instances in this Report reposistory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Db Id Inst Num
---------- --------
1534906505 1

Default to current database
Enter value for dbid:

Using database id: 1534906505★DBIDを指定

Enter begin time for report:

-- Valid input formats:
-- To specify absolute begin time:
-- [MM/DD[/YY]] HH24:MI[:SS]
-- Examples: 02/23/03 14:30:15
-- 02/23 14:30:15
-- 14:30:15
-- 14:30
-- To specify relative begin time: (start with '-' sign)
-- -[HH24:]MI
-- Examples: -1:15 (SYSDATE - 1 Hr 15 Mins)
-- -25 (SYSDATE - 25 Mins)

Default to -60 mins
Enter value for begin_time: 06:00:06 ★開始時間は、出力対象レポートより前の時間を指定
Report begin time specified: 06:00:06

Enter duration in minutes starting from begin time:
Defaults to SYSDATE - begin_time
Press Enter to analyze till current time
Enter value for duration:★終了時間は今回は指定せず
Report duration specified:

Using 07/07/2019 06:00:06 as report begin time
Using 07/07/2019 11:38:06 as report end time


Report ids in this workload repository.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


DBID REPORT_ID TIME trigger_cause impact
---------- --------- -------------------- ------------------------- ----------
1534906505 5351 07/07/2019 06:00:37 CPU Bound 2.07 ★出力対象のレポートが表示された

Select a report id from the list. If the report id list is empty,
please select a different begin time and end time.
Enter value for report_id: 5351★IDを指定
Report id specified : 5351
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is rtaddmrpt_0707_1138.html. To use this name,
press <return> to continue, otherwise enter an alternative.
Enter value for report_name:★出力先ファイル名を指定。今回はデフォルトのまま

Using the report name rtaddmrpt_0707_1138.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

(中略)

Report written to rtaddmrpt_0707_1138.html
SQL> exit
Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.6.0.0.0

 

ADDMレポートの出力結果確認

出力されたHTMLファイルをローカルPCにダウンロードすれば、EMから確認した場合とほぼ同じイメージのものが確認できる。

もちろんタブ変更可能。

・出力結果例

 

 

おまけ

 

遭遇したエラー

最初はrtaddmrpt.sqlを利用しようとしたが、以下のエラーが発生。

ERROR at line 1:
ORA-20000: No valid reports found in the specified time range. Please specify a
different begin and end time
ORA-06512: at line 11

⇒デフォルトで指定されるレポート出力期間内に出力可能なADDMレポートがなかったことが原因?

 

 

別の出力方法

マニュアルの記載だと、DBMS_ADDM.real_time_addm_report でも出力できそうだったが、解読不能なHTMLが出力されたので今回は深追いせず。

・出力用SQLのみメモ

SQL> SET LONG 1000000 LONGCHUNKSIZE 1000000
SET LINESIZE 5000 PAGESIZE 0
SET TRIM ON TRIMSPOOL ON
SET ECHO OFF FEEDBACK OFF

SELECT DBMS_ADDM.real_time_addm_report FROM dual;

 

 

参考情報

津島博士のパフォーマンス講座 第67回 AWRの分析について

AWRスナップショットごとのADDMよりも細かい間隔で診断できるようになりました。
これまでのADDMは、AWRスナップショットが取得されたときに実行されていましたが、MMONプロセスによって3秒間隔で自動的に実行され、メモリー内のASHデータを使用して、データベース内のパフォーマンス・スパイクが診断されるようになりました。ただし、常に診断すると負荷が大きいので、MMONプロセスが以下の問題(多大な影響を与える一時期な問題)を検出すると、リアルタイムADDM分析をトリガーするようになっています。

問題 条件
高負荷 平均のアクティブ・セッション数が、CPUコア数の3倍を超えている
I/Oバウンド 単一ブロック読取りパフォーマンスがアクティブ・セッションの基準を超えている
CPUバウンド アクティブ・セッションの合計負荷が10%、CPU使用率が50%を超えている
メモリーの過剰割当て メモリー割当てが物理メモリーの95%を超えている
インターコネクト・バウンド 単一ブロックのインターコネクト転送時間の基準を超えている
セッション制限 セッション制限が100%に近い
プロセス制限 プロセス制限が100%に近い
ハング・セッション ハング・セッションが合計セッションの10%を超えている
デッドロックの検出 デッドロックが検出された

 

Real-Time Automatic Database Diagnostics Monitor (ADDM) in Oracle Database 12c Release 1 (12.1)

 

 

スポンサードリンク

Be the first to comment

Leave a Reply

Your email address will not be published.


*