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の2種類がサポートされています。このフィールドを指定しないか、または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形式で表示します。
診断開始時間を
2024-02-22 19:26:47、診断終了時間を2024-06-22 19:27:07、レポート表示形式をTEXTに設定します。その他のフィールド値は必要に応じて設定します。obclient [test]> CALL DBMS_WORKLOAD_REPOSITORY.ASH_REPORT( '2023-09-22 10:26:47', '2024-06-22 20:27:07', NULL, NULL, NULL, 'TEXT', NULL, NULL, NULL);生成された一部の内容を抜粋します:
ASH Report Cluster Name: test424 Observer Version: OceanBase 4.2.4.0 (200000342024061210-c4c0c18741e45a1d40889b6147c3132574xxxxxx) Operation System Info: Linux(3.10.0-327.ali2019.alios7.x86_64)_x86_64 User Input Begin Time: 2023-09-22 10:26:47 User Input End Time: 2024-06-22 20:27:07 Analysis Begin Time: 2024-06-13 18:24:34 Analysis End Time: 2024-06-14 16:42:55 Elapsed Time: 80300 Num of Sample: 16433 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| +---------+------------+------------------+-----------------------+-------------------+--------------------+-----------+ | 1002| BACKGROUND| 16401| 1951| 14450| 0.20| 99.81%| | 1002| FOREGROUND| 32| 22| 10| 0.00| 0.20%| +---------+------------+------------------+-----------------------+-------------------+--------------------+-----------+画面上にレポート内容をHTML形式で表示します。
診断開始時間を
2024-02-22 19:26:47、診断終了時間を2024-06-22 19:27:07、レポート表示形式をHTMLに設定します。その他のフィールド値は必要に応じて設定します。obclient [test]>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);生成された一部の内容を抜粋します:
Observer Version: OceanBase 4.2.4.0 (200000342024061210-c4c0c18741e45a1d40889b6147c3132574xxxxxx) Operation System Info: Linux(3.10.0-327.ali2019.alios7.x86_64)_x86_64 User Input Begin Time: 2024-02-22 19:26:47 User Input End Time: 2024-06-22 19:27:07 Analysis Begin Time: 2024-06-13 18:24:34 Analysis End Time: 2024-06-14 17:04:21 Elapsed Time: 81586 Num of Sample: 16814 Average Active Sessions: 0.21 </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]>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=> '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ファイルを開いてレポート情報を確認します。