ASH PLパッケージを呼び出すことで、対応するASHレポートを生成できます。
SQL構文
ASH PLパケットの情報は、以下のフィールドで構成されています:
obclient [oceanbase]> call dbms_workload_repository.ash_report(
'BTIME',
'ETIME',
'SQL_ID',
'TRACE_ID',
'WAIT_CLASS',
'REPORT_TYPE',
'SVR_IP',
'SVR_PORT',
'TENANT_ID');
obclient [SYS]> call dbms_workload_repository.ash_report(
BTIME => 'xxxx',
ETIME => 'xxxx',
SQL_ID => 'xxxx',
TRACE_ID => 'xxxx',
WAIT_CLASS => 'xxxx',
REPORT_TYPE => 'xxxx',
SVR_IP => 'xxxx',
SVR_PORT=> 'xxxx',
TENANT_ID => 'xxxx');
パラメータの説明は以下のとおりです:
パラメータ |
説明 |
|---|---|
| BTIME | サンプリング開始時刻。必須。 |
| ETIME | サンプリング終了時刻。必須。 |
| SQL_ID | サンプリング対象のSQLのSQL_ID。記入しない場合、またはNULLを指定した場合はSQL_IDを制限しません。 |
| TRACE_ID | サンプリング対象のSQLのTRACE_ID。記入しない場合、またはNULLを指定した場合はTRACE_IDを制限しません。 |
| WAIT_CLASS | サンプリング対象のイベントタイプ。WAIT_CLASSの値はGV$OB_ACTIVE_SESSION_HISTORY.WAIT_CLASSフィールドの値を参照してください。記入しない場合、またはNULLを指定した場合は待機タイプを制限しません。 |
| REPORT_TYPE | レポートタイプ。現在HTMLとTEXTタイプをサポートしています。記入しない場合、またはNULLを指定した場合はデフォルトでTEXTタイプになります。 |
| SVR_IP | ASHレポートを生成するノードのIPアドレスを指定するために使用されます。記入しない場合、またはNULLを指定した場合はSVR_IPを制限しません。 |
| SVR_PORT | ASHレポートを生成するノードのポートを指定するために使用されます。記入しない場合、またはNULLを指定した場合はSVR_PORTを制限しません。 |
| TENANT_ID | ASHレポートを生成するテナントIDを指定するために使用されます。記入しない場合、またはNULLを指定した場合はTENANT_IDを制限しません。 |
注意
- 異なるテナント間でSVR_IP、SVR_PORT、TENANT_IDを指定しない場合の動作は次のとおりです。
- sysテナントの場合、すべてのIP、ポート、テナント情報を収集します。
- ユーザーテナントの場合、そのテナント配下のすべてのIPとポート情報を収集します。
- MySQLモードでは、必須ではないフィールドのうちいずれかが明示的に値を設定された場合、残りの必須ではないフィールドもNULLに明示的に設定する必要があり、記入を省略することはできません。
このパケットに関する情報は、GV$OB_ACTIVE_SESSION_HISTORYビューをクエリすることで取得できます。GV$OB_ACTIVE_SESSION_HISTORYビューはセッション活動情報を提供します。データベースに接続して待機中のセッションはすべて、アクティブなセッションと見なされます。各セッションのサンプルは、GV$OB_ACTIVE_SESSION_HISTORYビューが返す一連の行データであり、セッションサンプリング期間中の各セッションはビュー上に表示されます。このビューの詳細については、GV$OB_ACTIVE_SESSION_HISTORY(MySQLモード)およびGV$OB_ACTIVE_SESSION_HISTORY(Oracleモード)を参照してください。
手順
ASHレポートを生成する手順は以下のとおりです。
テナント管理者としてクラスタのMySQLテナントにログインし、OceanBaseデータベースに入ります。
$ obclient -h172.xx.xxx.xxx -Pxxxx -uroot@mysql -pxxxx -Aコンソール画面でレポート情報を表示します。
ASH PLパッケージを呼び出し、診断の開始時間、終了時間、および終了後のレポート表示形式を入力します。
説明
コンソール画面でレポート内容を確認する場合は、表示形式をTEXTに設定することを推奨します。
画面上でTEXT形式でレポート内容を表示します。
診断開始時刻を
2026-01-25 10:26:47、診断終了時刻を2026-01-25 20:27:07、レポート表示形式をTEXTに設定します。その他のフィールド値は必要に応じて設定します。obclient(root@mysql001)[oceanbase]> CALL DBMS_WORKLOAD_REPOSITORY.ASH_REPORT( '2026-01-25 10:26:47', '2026-01-25 20:27:07', NULL, NULL, NULL, 'TEXT', NULL, NULL, NULL);生成された一部の内容を抜粋します:
ASH Report Cluster Name: test442 Observer Version: OceanBase 4.4.2.0 (200000082026010517-xxxxxxxxxx) Operation System Info: Linux(3.10.0-327.ali2019.alios7.x86_64)_x86_64 User Input Begin Time: 2026-01-25 10:26:47 User Input End Time: 2026-01-25 20:27:07 Wr Analysis Begin Time: 2026-01-25 10:26:55 Wr Analysis End Time: 2026-01-25 20:26:34 Wr Data Source: oceanbase.DBA_WR_ACTIVE_SESSION_HISTORY Elapsed Time: 35979 Wr Num of Sample: 36920 Average Active Sessions: 1.03 Top Active Tenants: - this section lists top active tenant information - Total Count: num of records during ash report analysis time period - Wait Event Count: num of records when session is on wait event - On CPU Count: num of records when session is on cpu - Avg Active Sessions: average active sessions during ash report analysis time period - % Activity: activity(cpu + wait) percentage for given tenant +---------+------------+------------------+-----------------------+-------------------+--------------------+-----------+ |Tenant ID|Session Type| Total Count| Wait Event Count| On CPU Count| Avg Active Sessions| % Activity| +---------+------------+------------------+-----------------------+-------------------+--------------------+-----------+ | 1002| BACKGROUND| 16401| 1951| 14450| 0.20| 99.81%| | 1002| FOREGROUND| 32| 22| 10| 0.00| 0.20%| +---------+------------+------------------+-----------------------+-------------------+--------------------+-----------+画面上でHTML形式でレポート内容を表示します。
診断開始時刻を
2026-01-25 10:26:47、診断終了時刻を2026-01-25 20:27:07、レポート表示形式をHTMLに設定します。その他のフィールド値は必要に応じて設定します。obclient(root@mysql001)[oceanbase]>CALL DBMS_WORKLOAD_REPOSITORY.ASH_REPORT( '2026-01-25 10:26:47', '2026-01-25 20:27:07', NULL, NULL, NULL, 'HTML', NULL, NULL, NULL);生成された一部の内容を抜粋します:
Observer Version: OceanBase 4.4.2.0 (200000082026010517-xxxxxxxxxxxxxx) Operation System Info: Linux(3.10.0-327.ali2019.alios7.x86_64)_x86_64 User Input Begin Time: 2026-01-25 10:26:47 User Input End Time: 2026-01-25 20:27:07 Wr Analysis Begin Time: 2026-01-25 10:26:55 Wr Analysis End Time: 2026-01-25 20:26:34 Wr Data Source: oceanbase.DBA_WR_ACTIVE_SESSION_HISTORY Elapsed Time: 35979 Wr Num of Sample: 36920 Average Active Sessions: 1.03 </pre><ul id=110></ul><a class="ash_html" name='Top Active Tenants'></a> <h2 class="ash_html">Top Active Tenants<br></h2><ul><li class='ash_html'>this section lists top active tenant information</li> <li class='ash_html'>Total Count: num of records during ash report analysis time period</li> <li class='ash_html'>Wait Event Count: num of records when session is on wait event</li> <li class='ash_html'>On CPU Count: num of records when session is on cpu</li> <li class='ash_html'>Avg Active Sessions: average active sessions during ash report analysis time period</li> <li class='ash_html'>% Activity: activity(cpu + wait) percentage for given tenant</li>
(オプション)ローカルでレポート情報を確認します。
レポート内容をTXTファイルまたはHTMLページとして確認します。ここでは、HTML形式が生成された例を示します。
物理マシンにログインします。
[admin@xxxxxx.eu95sqa /home/admin]ASHレポートスクリプトファイル
ash_report.htmlを作成します。このスクリプトファイルはOBServerが配置されているマシンに配置するだけで済みます。[admin@xxxxxx.eu95sqa /home/admin] $vim ash_report_my.htmlスクリプト内容を生成します。
tee ash_report_my.html CALL DBMS_WORKLOAD_REPOSITORY.ASH_REPORT( '2023-09-22 10:26:47', '2024-06-22 20:27:07', NULL, NULL, NULL, 'HTML', NULL, NULL, NULL); noteeデータベースにログインし、
ash_report_my.htmlスクリプトを実行します。$ obclient -h172.xx.xxx.xxx -Pxxxx -uroot@mysql -pxxxx -Aobclient [test]> source ash_report_my.html;スクリプトが正常に実行されると、HTML形式のレポート内容が画面上に表示されます。
データベースを終了し、物理マシンに移動して
ash_report_my.htmlファイルのパスを確認します。[admin@k08j13249.eu95sqa /home/admin] $ls ALTER ash_report_my.htmlash_report_my.htmlファイルのパスがhome/admin/ash_report_my.htmlであることを確認します。物理マシンからローカルにファイルをエクスポートします。
新しいShell画面を開き、ファイルを保存するパスに移動します。
PS C:\Users\xxx\Desktop\ASH>scpコマンドを使用して、ash_report_my.htmlファイルを物理マシンからローカルマシンにインポートします。scp admin@xx.xx.xx.xx:/home/admin/ash_report_my.html /ローカルのパスで
ash_report_my.htmlファイルを開いてレポート情報を確認します。
SYSユーザーでクラスタのOracleテナントにログインし、OceanBaseデータベースに入ります。$ obclient -h172.xx.xxx.xxx -Pxxxx -usys@oracle -pxxxx -ASET SERVEROUTPUT ONステートメントを使用して出力内容を表示します。obclient [SYS]> SET SERVEROUTPUT ON;コンソール画面にレポート情報を表示します。
ASH PLパッケージを呼び出し、診断の開始時間、終了時間、および終了後のレポート表示形式を入力します。
説明
コンソール画面でレポート内容を確認する場合は、表示形式をTEXTに設定することを推奨します。
画面上でTEXT形式でレポート内容を表示します。
診断開始時間を
2024-02-22 19:26:47、診断終了時間を2024-06-22 19:27:07、レポート表示形式をTEXTに設定します。その他のフィールド値は必要に応じて設定します。obclient(SYS@oracle001)[SYS]>CALL DBMS_WORKLOAD_REPOSITORY.ASH_REPORT(TO_DATE('2026-01-25 19:26:47', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2026-01-25 19:27:07', 'YYYY-MM-DD HH24:MI:SS'), REPORT_TYPE=> 'TEXT');生成された一部の内容を抜粋します:
ASH Report Cluster Name: test424 Observer Version: OceanBase 4.2.4.0 (200000342024061210-c4c0c18741e45a1d40889b6147c313257xxxxxxxxx) Operation System Info: Linux(3.10.0-327.ali2019.alios7.x86_64)_x86_64 User Input Begin Time: 2024-02-2219:26:47 User Input End Time: 2024-06-2219:27:07 Analysis Begin Time: 2024-06-1318:26:41 Analysis End Time: 2024-06-1414:51:12 Elapsed Time: 73471 Num of Sample: 14750 Average Active Sessions: 0.20 Top Active Tenants: - this section lists top active tenant information - Total Count: num of records during ash report analysis time period - Wait Event Count: num of records when session is on wait event - On CPU Count: num of records when session is on cpu - Avg Active Sessions: average active sessions during ash report analysis time period - % Activity: activity(cpu + wait) percentage for given tenant +---------+------------+------------------+-----------------------+-------------------+--------------------+-----------+ |Tenant ID|Session Type| Total Count| Wait Event Count| On CPU Count| Avg Active Sessions| % Activity| +---------+------------+------------------+-----------------------+-------------------+--------------------+-----------+ | 1004| BACKGROUND| 14725| 1670| 13055| 0.20| 99.83%| | 1004| FOREGROUND| 25| 11| 14| 0.00| 0.17%| +---------+------------+------------------+-----------------------+-------------------+--------------------+-----------+画面上でHTML形式でレポート内容を表示します。
診断開始時間を
2024-02-22 19:26:47、診断終了時間を2024-06-22 19:27:07、レポート表示形式をHTMLに設定します。その他のフィールド値は必要に応じて設定します。obclient [SYS]>CALL DBMS_WORKLOAD_REPOSITORY.ASH_REPORT(TO_DATE('2024-02-22 19:26:47', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2024-06-22 19:27:07', 'YYYY-MM-DD HH24:MI:SS'), REPORT_TYPE=> 'HTML');生成された一部の内容を抜粋します:
Observer Version: OceanBase 4.2.4.0 (200000342024061210-c4c0c18741e45a1d40889b6147c313257xxxxxxxxx) Operation System Info: Linux(3.10.0-327.ali2019.alios7.x86_64)_x86_64 User Input Begin Time: 2024-02-2219:26:47 User Input End Time: 2024-06-2219:27:07 Analysis Begin Time: 2024-06-1318:26:41 Analysis End Time: 2024-06-1414:54:29 Elapsed Time: 73668 Num of Sample: 14806 Average Active Sessions: 0.20 </pre><ul id=110></ul><a class="ash_html" name='Top Active Tenants'></a> <h2 class="ash_html">Top Active Tenants<br></h2><ul><li class='ash_html'>this section lists top active tenant information</li> <li class='ash_html'>Total Count: num of records during ash report analysis time period</li> <li class='ash_html'>Wait Event Count: num of records when session is on wait event</li> <li class='ash_html'>On CPU Count: num of records when session is on cpu</li> <li class='ash_html'>Avg Active Sessions: average active sessions during ash report analysis time period</li> <li class='ash_html'>% Activity: activity(cpu + wait) percentage for given tenant</li>
(オプション)ローカルでレポート情報を確認します。
レポート内容をTXTファイルまたはHTMLウェブページの形式で確認します。ここでは、HTML形式が生成された例を示します。
物理マシンにログインします。
[admin@xxxxxx.eu95sqa /home/admin]ASHレポートスクリプトファイル
ash_report.htmlを作成します。このスクリプトファイルはOBServerが配置されているマシンに配置するだけで済みます。[admin@xxxxxx.eu95sqa /home/admin] $vim ash_report.htmlスクリプト内容を生成します。
set serveroutput on; tee ash_report.html CALL DBMS_WORKLOAD_REPOSITORY.ASH_REPORT( TO_DATE('2024-02-22 19:26:47', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2024-06-22 19:27:07', 'YYYY-MM-DD HH24:MI:SS'), REPORT_TYPE=> 'HTML' ); noteeデータベースにログインし、
ash_report.htmlスクリプトを実行します。$ obclient -h172.xx.xxx.xxx -Pxxxx -usys@oracle -pxxxx -Aobclient [SYS]> source ash_report.html;スクリプトが正常に実行されると、HTML形式のレポート内容が画面上に表示されます。
データベースを終了し、物理マシンに移動して
ash_report.htmlファイルのパスを確認します。[admin@k08j13249.eu95sqa /home/admin] $ls ALTER ash_report.htmlash_report.htmlファイルのパスがhome/admin/ash_report.htmlであることを確認します。物理マシンからファイルをローカルにエクスポートします。
新しいShell画面を開き、ファイルを保存するパスに移動します。
PS C:\Users\xxx\Desktop\ASH>scpコマンドを使用して、物理マシンからローカルマシンにash_report.htmlファイルをインポートします。scp admin@xx.xx.xx.xx:/home/admin/ash_report.html /ローカルパスで
ash_report.htmlファイルを開いてレポート情報を確認します。