Oracle Database のマルチテナント構成について知っておくとよいであろう操作を数回に分けて紹介します。
今回は第2弾「マルチテナント環境におけるAWRレポートの出力」について紹介します。
※マルチテナント構成やコンテナ・データベース(CDB)ならびにプラガブル・データベース(PDB)その自体の概念やアーキテクチャの詳しい説明は割愛しています。
第1弾「マルチテナント環境におけるAWR設定」はこちらをクリック
マルチテナント環境におけるAWRレポートの出力
CDBでもPDBでもawrrpt.sqlスクリプトを使用します。CDB(ルート・コンテナ)で実行した場合は従来と変わりはありません。
PDBで実行する場合、スクリプトの実行方法に変わりはありません。ただしレポート出力の入力項目に「AWRデータの場所」の指定が加わっています。
awrrpt.sqlでの入力項目
項目 | 従来(非 CDB) | CDB | PDBの場合 |
レポート・タイプの指定 | ● | ● | ● |
AWRデータの場所の指定 | (なし) | (なし) | ● |
レポート範囲の指定 | ● | ● | ● |
レポート名の指定 | ● | ● | ● |
PDBのAWRレポート出力
PDBでのAWRレポート出力方法自体はCDBの場合と同じです。awrrpt.sqlスクリプトを実行します。一点だけ違いがあり、レポートのもとになる情報をどこから得るか(どのビューを参照するか)を指示が要求されます。
Specify the location of AWR Data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AWR_ROOT - Use AWR data from root (default)
AWR_PDB - Use AWR data from PDB
Enter value for awr_location:
AWRデータの場所の選択肢
設定 | デフォルト | 説明 |
AWR_ROOT | ● | AWR_ROOT_*ビューをもとにレポートを対象PDBのレポートを生成します。 もとになるスナップショットはCDB単位で取得したものが使われます。 |
AWR_PDB | - | AWR_PDB_*ビューをもとにレポートを対象PDBのレポートを生成します。 PDB固有のスナップショットが使われます。 対象PDBに対する自動スナップショットが無効な場合は、レポート生成が失敗します。 |
実行例
AWRレポートを生成するPDBに接続します。
SQL> alter session set container=pdb1;
Session altered.
awrrpt.sqlスクリプトを実行します。
SQL> @?/rdbms/admin/awrrpt.sql
レポート・タイプを指定します。
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
AWR reports can be generated in the following formats. Please enter the
name of the format at the prompt. Default value is 'html'.'html' HTML format (default)
'text' Text format
'active-html' Includes Performance Hub active reportEnter value for report_type:
old 1: select 'Type Specified: ',lower(nvl('&&report_type','html')) report_type from dual
new 1: select 'Type Specified: ',lower(nvl('','html')) report_type from dualType Specified: html
AWRデータの場所を指定します。PDBでのAWRレポート生成の独自項目で「AWR_ROOT (デフォルト)」または「AWT_PDB」のいずれかを指定します。
例では「AWR_PDB」を指定しています。
Specify the location of AWR Data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AWR_ROOT - Use AWR data from root (default)
AWR_PDB - Use AWR data from PDB
Enter value for awr_location: AWR_PDBLocation of AWR Data Specified: AWR_PDB
インスタンス情報が表示されます。とくに選択項目はありません。
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance Container Name
ーーーーーー ーーーーーー ーーーーーー ーーーーーー ーーーーーーーー
373211116 ORCL 1 ORCL1 PDB1
Root DB Id Container DB Id AWR DB Id
ーーーーーー ーーーーーーーー ーーーーーーー
1704969206 373211116 373211116
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
ーーーーーー ーーーーーー ーーーーーー ーーーーーー ーーーーーー
373211116 1 ORCL ORCL1 rac19c11
373211116 2 ORCL ORCL2 rac19c12
Using 373211116 for database Id
Using 1 for instance number
レポート範囲を指定します。
レポートのもとになるスナップショットを選択するために、表示するリストの範囲を指定します。
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.Enter value for num_days:
開始SNAP_ID(begin_snap)と終了SNAP_ID(end_snap)を指定します。
Listing all Completed Snapshots
Instance DB Name Snap Id Snap Started Snap Level
ーーーーーー ーーーーーー ーーーーーー ーーーーーーーーー ーーーーーー
ORCL1 ORCL 1 12 Oct 2024 15:19 1
2 12 Oct 2024 15:30 1
3 12 Oct 2024 15:45 1
4 12 Oct 2024 16:00 1
5 12 Oct 2024 16:15 1
6 12 Oct 2024 16:30 1
7 12 Oct 2024 16:45 1
8 12 Oct 2024 17:00 1
9 12 Oct 2024 17:15 1
10 12 Oct 2024 17:30 1
11 12 Oct 2024 17:45 1
12 12 Oct 2024 18:00 1Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 10
Begin Snapshot Id specified: 10Enter value for end_snap: 12
End Snapshot Id specified: 12
出力ファイル名を指定します。この項目を入力してEnterキーを押下するとレポート生成が始まります。
例ではデフォルト名を使用せず「awrrpt_AWR_PRB_1_1_10_12.html」というファイル名を指定しています。
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_10_12.html. To use this name,
press <return> to continue, otherwise enter an alternative.Enter value for report_name: awrrpt_AWR_PDB_1_1_10_12.html
Using the report name awrrpt_AWR_PDB_1_1_10_12.html
レポート生成が完了すると次のように表示されます。
End of Report
</body></html>Report written to awrrpt_AWR_PDB_1_1_10_12.html
SQL>
レポートはカレント・ディレクトリに出力されます。
SQL> !ls -l `pwd`/awrrpt_AWR_PRB_1_1_10_12.html
-rw-r--r-- 1 oracle oinstall 332820 Oct 12 18:08 /lab/oracle/bin/awrrpt_AWR_PDB_1_1_10_12.html
PDBのAWRレポート内容
出力AWRレポートの内容自体には非CDBまたはコンテナ全体のレポートの場合と変わりありません。レポート生成時にAWRデータの場所を「AWR_ROOT」と「AWR_PDB」のどちらを選んだかによってインスタンスの動きを示す値に違いが表れます。PDBの稼働状況を調査するためには、どちらが良いかと言えば「AWR_PDB」を使うべきでしょう。
以下に、一部のセクションについて、それぞれのレポートの比較を示します。
・タイトルとレポートヘッダー部
タイトルに「PDB snapshot」の表示があり「AWR_PDB」で生成したものであることが示されています。「AWR_ROOT」を選択した場合は次のように「root snapshot」という表示です。
インスタンスやレポートの情報をが示される部分には、「AWR_PDB」の場合、その独自のスナップショットのIDと、開始、終了の時刻が示されます。
PDB snapshots
Root snapshots
Report Summary
インスタンスの全体的な稼働状態を確認できる「Load Profile」では、
「DB Time(s)」「DB CPU(s)」といった統計値に差が表れます。
PDB snapshots
root snapshots
・Top 10 Foreground Event by Total Wait Time
上位の待機イベントではDB CPUが差が表れています。
PDB snapshots
Root snapshots
・SQL ordered by xxxxx
「SQL ordered by xxxxx」でリストされるSQL文の数が変わります。「AWR_PDB」で生成したレポートのSQLの数が63であるのに対して、「AWR_ROOT」の同じセクションのSQLは16です。
スナップショットに記録されたSQLの母数が、他のPDBも含むCDB全体か、レポートの生成対象としたPDBのものかによる違いと考えられます。
PDB snapshots
root snapshots