Skip to content

Latest commit

 

History

History
255 lines (208 loc) · 22.1 KB

File metadata and controls

255 lines (208 loc) · 22.1 KB
title ADMIN SHOW DDL [JOBS|JOB QUERIES] | TiDB SQL Statement Reference
summary TiDB データベースの ADMIN の使用法の概要。

管理者 SHOW DDL [ジョブ|ジョブクエリ] {#admin-show-ddl-jobs-job-queries}

ADMIN SHOW DDL [JOBS|JOB QUERIES]ステートメントは、実行中の DDL ジョブと最近完了した DDL ジョブに関する情報を表示します。

概要 {#synopsis}

AdminShowDDLStmt ::=
    'ADMIN' 'SHOW' 'DDL'
    (
        'JOBS' Int64Num? WhereClauseOptional
    |   'JOB' 'QUERIES' NumList
    |   'JOB' 'QUERIES' 'LIMIT' m ( ('OFFSET' | ',') n )?
    )?

NumList ::=
    Int64Num ( ',' Int64Num )*

WhereClauseOptional ::=
    WhereClause?

例 {#examples}

ADMIN SHOW DDL {#code-admin-show-ddl-code}

現在実行中のDDLジョブのステータスを表示するには、 ADMIN SHOW DDL使用します。出力には、現在のスキーマバージョン、DDL IDと所有者のアドレス、実行中のDDLジョブとSQL文、現在のTiDBインスタンスのDDL IDが含まれます。返される結果フィールドは以下のとおりです。

  • SCHEMA_VER : スキーマのバージョンを示す数値。
  • OWNER_ID : DDL所有者のUUID。2 TIDB_IS_DDL_OWNER()参照してください。
  • OWNER_ADDRESS : DDL 所有者の IP アドレス。
  • RUNNING_JOBS : 実行中の DDL ジョブの詳細。
  • SELF_ID : 現在接続しているTiDBノードのUUID。2 SELF_ID OWNER_IDと同じ場合は、DDL所有者に接続していることを意味します。
  • QUERY : クエリのステートメント。
ADMIN SHOW DDL\G;
*************************** 1. row ***************************
   SCHEMA_VER: 26
     OWNER_ID: 2d1982af-fa63-43ad-a3d5-73710683cc63
OWNER_ADDRESS: 0.0.0.0:4000
 RUNNING_JOBS:
      SELF_ID: 2d1982af-fa63-43ad-a3d5-73710683cc63
        QUERY:
1 row in set (0.00 sec)

ADMIN SHOW DDL JOBS {#code-admin-show-ddl-jobs-code}

ADMIN SHOW DDL JOBSステートメントは、現在のDDLジョブキューにある10個のジョブ(実行中および保留中のジョブ(存在する場合)を含む)と、実行済みのDDLジョブキューにある最後の10個のジョブ(存在する場合)を表示します。返される結果フィールドは、以下のとおりです。

  • JOB_ID : 各 DDL 操作は DDL ジョブに対応します。2 JOB_IDグローバルに一意です。
  • DB_NAME : DDL 操作が実行されるデータベースの名前。
  • TABLE_NAME : DDL 操作が実行されるテーブルの名前。
  • JOB_TYPE : DDL操作の種類。一般的なジョブの種類は次のとおりです。
  • SCHEMA_STATE : DDLが操作するスキーマオブジェクトの現在の状態。2 がJOB_TYPE ADD INDEX場合はインデックスの状態、 JOB_TYPEADD COLUMNの場合は列の状態、 JOB_TYPECREATE TABLEの場合はテーブルの状態です。一般的な状態には以下が含まれます。
    • none : 存在しないことを示します。通常、 DROP操作の後、またはCREATE操作が失敗してロールバックした後、 none番目の状態になります。
    • delete only write reorganizationこれらの4つの状態は中間状態です。それぞれの具体的な意味については、 TiDBにおけるオンラインDDL非同期変更の仕組み参照してください。中間状態の変換delete reorganization高速であるため、これらの状態は通常write only演算中は表示されません。10 ADD INDEX演算を実行する場合にのみ、 write reorganization状態が表示され、インデックスデータが追加されていることを示します。
    • public : 存在し、ユーザーが利用できることを示します。通常、 CREATE TABLEADD INDEX (またはADD COLUMN )の操作が完了すると、状態はpublicになり、新しく作成されたテーブル、列、およびインデックスが正常に読み書きできることを示します。
  • SCHEMA_ID : DDL 操作が実行されるデータベースの ID。
  • TABLE_ID : DDL 操作が実行されるテーブルの ID。
  • ROW_COUNT : ADD INDEX操作を実行する場合、追加されたデータ行の数です。
  • CREATE_TIME : DDL 操作の作成時刻。
  • START_TIME : DDL 操作の開始時刻。
  • END_TIME : DDL 操作の終了時刻。
  • STATE : DDL操作の状態。一般的な状態は次のとおりです。
    • none : 操作がまだ開始されていないことを示します。
    • queueing : 操作ジョブがDDLジョブキューに入ったものの、前のDDLジョブの完了を待機しているため実行されていないことを示します。別の理由としては、 DROP操作の実行後、 queueing番目の状態がdone番目の状態になるものの、すぐにsynced番目の状態に更新され、すべてのTiDBインスタンスがその状態に同期されたことが考えられます。
    • running : 操作が実行中であることを示します。
    • synced : 操作が正常に実行され、すべての TiDB インスタンスがこの状態に同期されていることを示します。
    • rollback done : 操作が失敗し、ロールバックが完了したことを示します。
    • rollingback : 操作が失敗し、ロールバック中であることを示します。
    • cancelling : 操作がキャンセルされていることを示します。この状態は、 ADMIN CANCEL DDL JOBSコマンドを使用して DDL ジョブをキャンセルした場合にのみ表示されます。
    • cancelled : 操作がキャンセルされたことを示します。
    • pausing : 操作が一時停止されていることを示します。
    • paused : 操作が一時停止されていることを示します。この状態は、 ADMIN PAUSED DDL JOBSコマンドを使用して DDL ジョブを一時停止した場合にのみ表示されます。4 コマンドを使用して DDL ジョブADMIN RESUME DDL JOBS再開できます。
    • done : 操作は TiDB 所有者ノードで正常に実行されたが、他の TiDB ノードではこの DDL ジョブによって実行された変更がまだ同期されていないことを示します。
  • COMMENTS : 診断目的の追加情報が含まれます。
    • ingest : tidb_ddl_enable_fast_reorgで構成された高速化されたインデックス バックフィルの追加のためのタスクを取り込みます。
    • txn : tidb_ddl_enable_fast_reorg以降のトランザクションベースのインデックス バックフィルは無効になります。
    • txn-merge : バックフィルが完了すると元のインデックスとマージされる一時インデックスを使用したトランザクション バックフィル。
    • DXF : tidb_enable_dist_taskで構成された Distributed eXecution Framework (DXF) を使用して実行されるタスク。
    • service_scope : tidb_service_scopeで設定された TiDB ノードのサービス スコープ。
    • thread : バックフィルタスクの同時実行数。初期値はtidb_ddl_reorg_worker_cntに設定できます。4 ADMIN ALTER DDL JOBS指定することで動的な変更が可能です。
    • batch_size : バックフィルタスクのバッチサイズ。初期値はtidb_ddl_reorg_batch_sizeに設定できます。4 ADMIN ALTER DDL JOBS指定することで動的な変更が可能です。
    • max_write_speed : インジェストタスクのインポート時のフロー制御。初期値はtidb_ddl_reorg_max_write_speedに設定できます。4 による動的な変更ADMIN ALTER DDL JOBSサポートされます。
  • JOB_ID : 各 DDL 操作は DDL ジョブに対応します。2 JOB_IDグローバルに一意です。
  • DB_NAME : DDL 操作が実行されるデータベースの名前。
  • TABLE_NAME : DDL 操作が実行されるテーブルの名前。
  • JOB_TYPE : DDL 操作のタイプ。
  • SCHEMA_STATE : DDLが操作するスキーマオブジェクトの現在の状態。2 がJOB_TYPE ADD INDEX場合はインデックスの状態、 JOB_TYPEADD COLUMNの場合は列の状態、 JOB_TYPECREATE TABLEの場合はテーブルの状態です。一般的な状態には以下が含まれます。
    • none : 存在しないことを示します。通常、 DROP操作の後、またはCREATE操作が失敗してロールバックした後、 none番目の状態になります。
    • delete only write reorganizationこれらの4つの状態は中間状態です。それぞれの具体的な意味については、 TiDBにおけるオンラインDDL非同期変更の仕組み参照してください。中間状態の変換delete reorganization高速であるため、これらの状態は通常write only演算中は表示されません。10 ADD INDEX演算を実行する場合にのみ、 write reorganization状態が表示され、インデックスデータが追加されていることを示します。
    • public : 存在し、ユーザーが利用できることを示します。通常、 CREATE TABLEADD INDEX (またはADD COLUMN )の操作が完了すると、状態はpublicになり、新しく作成されたテーブル、列、およびインデックスが正常に読み書きできることを示します。
  • SCHEMA_ID : DDL 操作が実行されるデータベースの ID。
  • TABLE_ID : DDL 操作が実行されるテーブルの ID。
  • ROW_COUNT : ADD INDEX操作を実行する場合、追加されたデータ行の数です。
  • START_TIME : DDL 操作の開始時刻。
  • STATE : DDL操作の状態。一般的な状態は次のとおりです。
    • queueing : 操作ジョブがDDLジョブキューに入ったものの、前のDDLジョブの完了を待機しているため実行されていないことを示します。別の理由としては、 DROP操作を実行した後、状態noneになりますが、すぐに状態syncedに更新され、すべてのTiDBインスタンスがその状態に同期されたことが考えられます。
    • running : 操作が実行中であることを示します。
    • synced : 操作が正常に実行され、すべての TiDB インスタンスがこの状態に同期されていることを示します。
    • rollback done : 操作が失敗し、ロールバックが完了したことを示します。
    • rollingback : 操作が失敗し、ロールバック中であることを示します。
    • cancelling : 操作がキャンセルされていることを示します。この状態は、 ADMIN CANCEL DDL JOBSコマンドを使用して DDL ジョブをキャンセルした場合にのみ表示されます。
    • paused : 操作が一時停止されていることを示します。この状態は、 ADMIN PAUSED DDL JOBSコマンドを使用して DDL ジョブを一時停止した場合にのみ表示されます。4 コマンドを使用して DDL ジョブADMIN RESUME DDL JOBS再開できます。

次の例はADMIN SHOW DDL JOBSの結果を示しています。

ADMIN SHOW DDL JOBS;
+--------+---------+------------+---------------------------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+
| JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE                        | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE    | COMMENTS    |
+--------+---------+------------+---------------------------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+
|    565 | test    | sbtest1    | add index                       | write reorganization |       554 |      556 |         0 | 2024-11-22 12:39:25.475000 | 2024-11-22 12:39:25.524000 | NULL                       | running  | ingest, DXF |
|    566 | test    | sbtest1    | add index                       | none                 |       554 |      556 |         0 | 2024-11-22 12:39:26.425000 | NULL                       | NULL                       | queueing |             |
|    564 | test    | sbtest1    | alter table multi-schema change | none                 |       554 |      556 |         0 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:03.275000 | synced   |             |
|    564 | test    | sbtest1    | drop index /* subjob */         | none                 |       554 |      556 |         0 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:03.275000 | done     |             |
|    564 | test    | sbtest1    | drop index /* subjob */         | none                 |       554 |      556 |         0 | 2024-11-22 12:39:02.925000 | 2024-11-22 12:39:02.975000 | 2024-11-22 12:39:03.275000 | done     |             |
|    563 | test    | sbtest1    | modify column                   | public               |       554 |      556 |         0 | 2024-11-22 12:38:35.624000 | 2024-11-22 12:38:35.624000 | 2024-11-22 12:38:35.674000 | synced   |             |
|    562 | test    | sbtest1    | add index                       | public               |       554 |      556 |   1580334 | 2024-11-22 12:36:58.471000 | 2024-11-22 12:37:05.271000 | 2024-11-22 12:37:13.374000 | synced   | ingest, DXF |
|    561 | test    | sbtest1    | add index                       | public               |       554 |      556 |   1580334 | 2024-11-22 12:36:57.771000 | 2024-11-22 12:36:57.771000 | 2024-11-22 12:37:04.671000 | synced   | ingest, DXF |
|    560 | test    | sbtest1    | add index                       | public               |       554 |      556 |   1580334 | 2024-11-22 12:34:53.314000 | 2024-11-22 12:34:53.314000 | 2024-11-22 12:34:57.114000 | synced   | ingest      |
|    559 | test    | sbtest1    | drop index                      | none                 |       554 |      556 |         0 | 2024-11-22 12:34:43.565000 | 2024-11-22 12:34:43.565000 | 2024-11-22 12:34:43.764000 | synced   |             |
|    558 | test    | sbtest1    | add index                       | public               |       554 |      556 |   1580334 | 2024-11-22 12:34:06.215000 | 2024-11-22 12:34:06.215000 | 2024-11-22 12:34:14.314000 | synced   | ingest, DXF |
|    557 | test    | sbtest1    | create table                    | public               |       554 |      556 |         0 | 2024-11-22 12:32:09.515000 | 2024-11-22 12:32:09.915000 | 2024-11-22 12:32:10.015000 | synced   |             |
|    555 | test    |            | create schema                   | public               |       554 |        0 |         0 | 2024-11-22 12:31:51.215000 | 2024-11-22 12:31:51.264000 | 2024-11-22 12:31:51.264000 | synced   |             |
|    553 | test    |            | drop schema                     | none                 |         2 |        0 |         0 | 2024-11-22 12:31:48.615000 | 2024-11-22 12:31:48.615000 | 2024-11-22 12:31:48.865000 | synced   |             |
+--------+---------+------------+---------------------------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+
14 rows in set (0.00 sec)

上記の出力から:

  • ジョブ565は現在進行中です( STATE )。スキーマ状態は現在write reorganizationですが、ジョブが完了するとpublicに切り替わりますrunningこれは、この変更がユーザーセッションから公開で確認できることを示唆しています。9列目もend_time NULLなっており、これはジョブの完了時刻が現在不明であることを示しています。

  • job_id 566 のSTATE queueingと表示され、キューイング中であることを示します。ジョブ 565 が完了し、ジョブ 566 の実行が開始されると、ジョブ 566 のSTATE runningに変わります。

  • インデックスやテーブルの削除などの破壊的な変更の場合、ジョブが完了するとSCHEMA_STATEnoneに変わります。追加的な変更の場合、 SCHEMA_STATEpublicに変わります。

表示される行数を制限するには、数値と where 条件を指定します。

ADMIN SHOW DDL JOBS [NUM] [WHERE where_condition];
  • NUM : 完了したDDLジョブキューの最後のNUM結果を表示します。指定しない場合は、デフォルトでNUM (10)になります。
  • WHERE : フィルター条件を追加します。

ADMIN SHOW DDL JOB QUERIES {#code-admin-show-ddl-job-queries-code}

job_idに対応する DDL ジョブの元の SQL ステートメントを表示するには、 ADMIN SHOW DDL JOB QUERIES使用します。

ADMIN SHOW DDL JOBS;
ADMIN SHOW DDL JOB QUERIES 51;
mysql> ADMIN SHOW DDL JOB QUERIES 51;
+--------------------------------------------------------------+
| QUERY                                                        |
+--------------------------------------------------------------+
| CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY auto_increment) |
+--------------------------------------------------------------+
1 row in set (0.02 sec)

DDL 履歴ジョブ キュー内の過去 10 件の結果のうち、 job_idに対応する実行中の DDL ジョブのみを検索できます。

ADMIN SHOW DDL JOB QUERIES LIMIT m OFFSET n {#code-admin-show-ddl-job-queries-limit-m-offset-n-code}

job_idに対応する指定された範囲[n+1, n+m]内の DDL ジョブの元の SQL ステートメントを表示するには、 ADMIN SHOW DDL JOB QUERIES LIMIT m OFFSET n使用します。

 ADMIN SHOW DDL JOB QUERIES LIMIT m;  # Retrieve first m rows
 ADMIN SHOW DDL JOB QUERIES LIMIT n, m;  # Retrieve rows [n+1, n+m]
 ADMIN SHOW DDL JOB QUERIES LIMIT m OFFSET n;  # Retrieve rows [n+1, n+m]

ここでnmは 0 以上の整数です。

ADMIN SHOW DDL JOB QUERIES LIMIT 3;  # Retrieve first 3 rows
+--------+--------------------------------------------------------------+
| JOB_ID | QUERY                                                        |
+--------+--------------------------------------------------------------+
|     59 | ALTER TABLE t1 ADD INDEX index2 (col2)                       |
|     60 | ALTER TABLE t2 ADD INDEX index1 (col1)                       |
|     58 | CREATE TABLE t2 (id INT NOT NULL PRIMARY KEY auto_increment) |
+--------+--------------------------------------------------------------+
3 rows in set (0.00 sec)
ADMIN SHOW DDL JOB QUERIES LIMIT 6, 2;  # Retrieve rows 7-8
+--------+----------------------------------------------------------------------------+
| JOB_ID | QUERY                                                                      |
+--------+----------------------------------------------------------------------------+
|     52 | ALTER TABLE t1 ADD INDEX index1 (col1)                                     |
|     51 | CREATE TABLE IF NOT EXISTS t1 (id INT NOT NULL PRIMARY KEY auto_increment) |
+--------+----------------------------------------------------------------------------+
3 rows in set (0.00 sec)
ADMIN SHOW DDL JOB QUERIES LIMIT 3 OFFSET 4;  # Retrieve rows 5-7
+--------+----------------------------------------+
| JOB_ID | QUERY                                  |
+--------+----------------------------------------+
|     54 | DROP TABLE IF EXISTS t3                |
|     53 | ALTER TABLE t1 DROP INDEX index1       |
|     52 | ALTER TABLE t1 ADD INDEX index1 (col1) |
+--------+----------------------------------------+
3 rows in set (0.00 sec)

DDL履歴ジョブキュー内の任意の結果範囲から、 job_idに対応する実行中のDDLジョブを検索できます。この構文には、 ADMIN SHOW DDL JOB QUERIESの最後の10件の結果という制限はありません。

MySQLの互換性 {#mysql-compatibility}

このステートメントは、MySQL 構文に対する TiDB 拡張です。

参照 {#see-also}