## モジュール 2: ADMIN PAUSE DDL と ADMIN RESUME DDL を使用します

一部のDDL操作は長時間にわたり実行され、大量のCPUおよびIO負荷を伴うことがあります。例えば、大きなテーブルにインデックスを追加したり、列の属性を変更したりする操作です。`ADMIN PAUSE/RESUME DDL`を使用することで、ユーザーは実行中のDDLタスクを一時停止または再開することができ、長時間の実行がデータベースの負荷や他のメンテナンス作業に影響を与えるのを防ぐことができます。

### 手順 1. TiUP コントロールマシンに2つのターミナルで接続します

+ 以下のリンクをクリックして、演習用仮想マシンへの2つのSSH接続を開きます：
  + [ターミナル 1](ssh://monitor1-ssh#1)
  + [ターミナル 2](ssh://monitor1-ssh#2)

+ これで2つのアクティブなターミナルセッションが開かれます。

### 手順 2. テーブルにインデックスを追加し、列の属性を変更します

+ [Grafana dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000)にログインし、この手順で開いている監視ページを保持し、監視の時間範囲を最近5分に設定し、更新頻度を5秒に変更することをお勧めします。

  ![70%](https://lab-static.pingcap.com/images/2025/7/26/9c787410ab425dd7eb7e7297cc46711ec63ccc22.png)

+ TiKVクラスターのCPUとIO負荷を監視する方法について説明します。[Grafana dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000)にログインし、`Home`に入り、次に`tidb-demo`を選択し、続いて`tidb-demo-TiKV-Details`を選択します。`Cluster`タブを開くと、`Cluster`タブの下にある`CPU`パネルには各TiKVノードのCPU使用率が表示され、`IO utilization`パネルには各ノードのIO使用率が表示されます。

  ![70%](https://lab-static.pingcap.com/images/2025/7/26/4731b3d2183b8d351eae72b449cb547bf23f52ec.png)

+ [ターミナル 1](ssh://monitor1-ssh#1) で、TiDBサーバーインスタンスに接続します。

  ```bash
  mysql -h ${HOST_TIPROXY1_PRIVATE_IP} --port 6000 -u root
  ```

  ```output
  mysql> 
  ```

> [!TIP]
> 注意: `手順 2` と `手順 3` の各コマンドの時間間隔は1分を超えないようにお願いします。そうしないと、期待される結果が得られない可能性があります。

+ テーブル `test.ddl_test1` にインデックスを追加し、`content` 列の属性を変更します。注意: コマンドが完了するまで待たないでください。

  ```sql
  ALTER TABLE test.ddl_test1 ADD INDEX idx_content_updated_at(content, updated_at);ALTER TABLE test.ddl_test1 MODIFY `content` VARCHAR(32) DEFAULT '0000000000' COMMENT 'content';
  ```

+ 再度[Grafana dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000)に戻り、`tidb-demo-TiKV-Details` の `Cluster` タブでは、各 TiKV ノードの CPU使用率 と IO使用率 `IO utilization`が上昇し始めていることが確認できます。これは、DDLタスクがCPUとIOリソースを使用していることを示しており、これが既存のビジネス負荷に影響を与える可能性があります。

  ![70%](https://lab-static.pingcap.com/images/2025/7/26/b5aaf6accffbf68dabd122ece7f53e193a16418d.png)

+ 本演習において、テーブル `test.ddl_test1` の `content` 列の属性を変更する操作は約3分間かかりますので、3分以内に `手順 3` を開始してください。そうしないと、正しい結果が得られない可能性があります。

### 手順 3. ADMIN PAUSE DDL を使用してDDLタスクを一時停止します

+ [ターミナル 2](ssh://monitor1-ssh#2) で、TiDBサーバーインスタンスに接続します。

  ```bash
  mysql -h ${HOST_TIPROXY1_PRIVATE_IP} --port 6000 -u root
  ```

  ```output
  mysql> 
  ```

+ コマンド `ADMIN SHOW DDL JOBS` を使用して、前の手順で実行されたDDLタスクの `JOB_ID` を見つけます。例では `JOB_ID` は `119`、`DB_NAME` は `test`、`TABLE_NAME` は `ddl_test1`、`JOB_TYPE` は `modify column`、`SCHEMA_STATE STATE` は `write reorganization`、`STATE` は `running` となり、該当するDDLタスクが実行中であることを示しています。なお、出力は例と異なる場合がありますので注意してください。

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME            | JOB_TYPE      | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE   | COMMENTS    |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  |    119 | test    | ddl_test1             | modify column | write reorganization |         2 |      110 |         0 | 2025-07-26 04:01:29.723000 | 2025-07-26 04:01:29.772000 | NULL                       | running |             |
  |    118 | test    | ddl_test1             | add index     | public               |         2 |      110 |   4194304 | 2025-07-26 04:01:10.173000 | 2025-07-26 04:01:10.222000 | 2025-07-26 04:01:21.222000 | synced  | ingest, DXF |
  |    117 | test    | ddl_test4             | create table  | public               |         2 |      116 |         0 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.473000 | synced  |             |
  |    115 | test    | ddl_test3             | create table  | public               |         2 |      114 |         0 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.423000 | 2025-07-26 03:28:35.423000 | synced  |             |
  |    113 | test    | ddl_test2             | create table  | public               |         2 |      112 |         0 | 2025-07-26 03:28:35.322000 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.373000 | synced  |             |
  |    111 | test    | ddl_test1             | create table  | public               |         2 |      110 |         0 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.322000 | synced  |             |
  |    109 | mysql   | tidb_kernel_options   | create table  | public               |         1 |      108 |         0 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | synced  |             |
  |    107 | mysql   | index_advisor_results | create table  | public               |         1 |      106 |         0 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.823000 | 2025-07-26 03:22:35.823000 | synced  |             |
  |    105 | sys     | schema_unused_indexes | create view   | public               |       102 |      104 |         0 | 2025-07-26 03:22:35.722000 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.772000 | synced  |             |
  |    103 | sys     |                       | create schema | public               |       102 |        0 |         0 | 2025-07-26 03:22:35.673000 | 2025-07-26 03:22:35.673000 | 2025-07-26 03:22:35.722000 | synced  |             |
  |    101 | mysql   | tidb_pitr_id_map      | create table  | public               |         1 |      100 |         0 | 2025-07-26 03:22:35.622000 | 2025-07-26 03:22:35.622000 | 2025-07-26 03:22:35.673000 | synced  |             |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  11 rows in set (0.01 sec)
  ```

+ コマンド `ADMIN PAUSE DDL JOBS` とDDLタスクの `JOB_ID` を使用して、前のステップで実行されたDDLタスクを一時停止します。なお、以下のコード内の `JOB_ID` は受講者自身の環境に応じて指定する必要があり、`119` でない場合もありますので注意してください。

  ```sql
  ADMIN PAUSE DDL JOBS 119;
  ```

  ```output
  +--------+------------+
  | JOB_ID | RESULT     |
  +--------+------------+
  | 119    | successful |
  +--------+------------+
  1 row in set (0.01 sec)
  ```

+ コマンド `ADMIN SHOW DDL JOBS` を使用してDDLタスクの状態を確認します。例では `JOB_ID` は `119`、`STATE` は `pausing` となり、既に一時停止していることを示しています。出力は例と異なる場合がありますので注意してください。

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME            | JOB_TYPE      | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE   | COMMENTS    |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  |    119 | test    | ddl_test1             | modify column | write reorganization |         2 |      110 |         0 | 2025-07-26 04:01:29.723000 | 2025-07-26 04:01:29.772000 | NULL                       | pausing |             |
  |    118 | test    | ddl_test1             | add index     | public               |         2 |      110 |   4194304 | 2025-07-26 04:01:10.173000 | 2025-07-26 04:01:10.222000 | 2025-07-26 04:01:21.222000 | synced  | ingest, DXF |
  |    117 | test    | ddl_test4             | create table  | public               |         2 |      116 |         0 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.473000 | synced  |             |
  |    115 | test    | ddl_test3             | create table  | public               |         2 |      114 |         0 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.423000 | 2025-07-26 03:28:35.423000 | synced  |             |
  |    113 | test    | ddl_test2             | create table  | public               |         2 |      112 |         0 | 2025-07-26 03:28:35.322000 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.373000 | synced  |             |
  |    111 | test    | ddl_test1             | create table  | public               |         2 |      110 |         0 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.322000 | synced  |             |
  |    109 | mysql   | tidb_kernel_options   | create table  | public               |         1 |      108 |         0 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | synced  |             |
  |    107 | mysql   | index_advisor_results | create table  | public               |         1 |      106 |         0 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.823000 | 2025-07-26 03:22:35.823000 | synced  |             |
  |    105 | sys     | schema_unused_indexes | create view   | public               |       102 |      104 |         0 | 2025-07-26 03:22:35.722000 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.772000 | synced  |             |
  |    103 | sys     |                       | create schema | public               |       102 |        0 |         0 | 2025-07-26 03:22:35.673000 | 2025-07-26 03:22:35.673000 | 2025-07-26 03:22:35.722000 | synced  |             |
  |    101 | mysql   | tidb_pitr_id_map      | create table  | public               |         1 |      100 |         0 | 2025-07-26 03:22:35.622000 | 2025-07-26 03:22:35.622000 | 2025-07-26 03:22:35.673000 | synced  |             |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  11 rows in set (0.00 sec)
  ```

+ 再度[Grafana dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000)に戻り、`tidb-demo-TiKV-Details` の `Cluster` タブでは、各 TiKV ノードの CPU使用率 と IO使用率 `IO utilization` が下降し始めていることが確認できます。

  ![70%](https://lab-static.pingcap.com/images/2025/7/26/dee7ff1ce503ddbf13526726bcae55df17df956d.png)

### 手順 4. `ADMIN RESUME DDL` を使用してDDLタスクを再開します

+ [ターミナル 2](ssh://monitor1-ssh#2) で、TiDBサーバーインスタンスに接続します。

  ```bash
  mysql -h ${HOST_TIPROXY1_PRIVATE_IP} --port 6000 -u root
  ```

  ```output
  mysql> 
  ```

+ コマンド `ADMIN RESUME DDL JOBS` とDDLタスクの `JOB_ID` を使用して、前のステップで一時停止されたDDLタスクを再開します。なお、以下のコード内の `JOB_ID` は受講者自身の環境に応じて指定する必要があり、`119` でない場合もありますので注意してください。

  ```sql
  ADMIN RESUME DDL JOBS 119;
  ```

  ```output
  +--------+------------+
  | JOB_ID | RESULT     |
  +--------+------------+
  | 119    | successful |
  +--------+------------+
  1 row in set (0.01 sec)
  ```

+ コマンド `ADMIN SHOW DDL JOBS` を使用してDDLタスクの状態を確認します。例では `JOB_ID` は `119`、`STATE` は `queueing` となり、既に再開されていることを示しています。出力は例と異なる場合がありますので注意してください。

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME            | JOB_TYPE      | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE    | COMMENTS    |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+
  |    119 | test    | ddl_test1             | modify column | write reorganization |         2 |      110 |         0 | 2025-07-26 04:01:29.723000 | 2025-07-26 04:01:29.772000 | NULL                       | queueing |             |
  |    118 | test    | ddl_test1             | add index     | public               |         2 |      110 |   4194304 | 2025-07-26 04:01:10.173000 | 2025-07-26 04:01:10.222000 | 2025-07-26 04:01:21.222000 | synced   | ingest, DXF |
  |    117 | test    | ddl_test4             | create table  | public               |         2 |      116 |         0 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.473000 | synced   |             |
  |    115 | test    | ddl_test3             | create table  | public               |         2 |      114 |         0 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.423000 | 2025-07-26 03:28:35.423000 | synced   |             |
  |    113 | test    | ddl_test2             | create table  | public               |         2 |      112 |         0 | 2025-07-26 03:28:35.322000 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.373000 | synced   |             |
  |    111 | test    | ddl_test1             | create table  | public               |         2 |      110 |         0 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.322000 | synced   |             |
  |    109 | mysql   | tidb_kernel_options   | create table  | public               |         1 |      108 |         0 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | synced   |             |
  |    107 | mysql   | index_advisor_results | create table  | public               |         1 |      106 |         0 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.823000 | 2025-07-26 03:22:35.823000 | synced   |             |
  |    105 | sys     | schema_unused_indexes | create view   | public               |       102 |      104 |         0 | 2025-07-26 03:22:35.722000 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.772000 | synced   |             |
  |    103 | sys     |                       | create schema | public               |       102 |        0 |         0 | 2025-07-26 03:22:35.673000 | 2025-07-26 03:22:35.673000 | 2025-07-26 03:22:35.722000 | synced   |             |
  |    101 | mysql   | tidb_pitr_id_map      | create table  | public               |         1 |      100 |         0 | 2025-07-26 03:22:35.622000 | 2025-07-26 03:22:35.622000 | 2025-07-26 03:22:35.673000 | synced   |             |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+----------+-------------+
  11 rows in set (0.02 sec)
  ```

+ 再度[Grafana dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000)に戻り、`tidb-demo-TiKV-Details` の `Cluster` タブでは、各 TiKV ノードの CPU使用率 と IO使用率 `IO utilization` が上昇し始めていることが確認できます。

  ![70%](https://lab-static.pingcap.com/images/2025/7/26/bf4c1b298d4d416169b0758365a7ec5023c0fcf2.png)

### 手順 5. DDLタスクの実行が終了するまで待ちます

+ [ターミナル 1](ssh://monitor1-ssh#1) で、DDLタスクの実行が終了するまで待ちます。

  ```output
  Query OK, 0 rows affected (12.02 sec)

  Query OK, 0 rows affected (4 min 42.02 sec)
  ```

+ [ターミナル 2](ssh://monitor1-ssh#2) で、コマンド `ADMIN SHOW DDL JOBS` を使用してDDLタスクの状態を確認します。例では `JOB_ID` は `119`、`STATE` は `synced` となり、既に実行が完了していることを示しています。なお、出力は例と異なる場合がありますので注意してください 。

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+-----------------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME            | JOB_TYPE      | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE  | COMMENTS    |
  +--------+---------+-----------------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-------------+
  |    119 | test    | ddl_test1             | modify column | public       |         2 |      110 |   4194304 | 2025-07-26 04:01:29.723000 | 2025-07-26 04:01:29.772000 | 2025-07-26 04:25:44.122000 | synced |             |
  |    118 | test    | ddl_test1             | add index     | public       |         2 |      110 |   4194304 | 2025-07-26 04:01:10.173000 | 2025-07-26 04:01:10.222000 | 2025-07-26 04:01:21.222000 | synced | ingest, DXF |
  |    117 | test    | ddl_test4             | create table  | public       |         2 |      116 |         0 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.473000 | synced |             |
  |    115 | test    | ddl_test3             | create table  | public       |         2 |      114 |         0 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.423000 | 2025-07-26 03:28:35.423000 | synced |             |
  |    113 | test    | ddl_test2             | create table  | public       |         2 |      112 |         0 | 2025-07-26 03:28:35.322000 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.373000 | synced |             |
  |    111 | test    | ddl_test1             | create table  | public       |         2 |      110 |         0 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.322000 | synced |             |
  |    109 | mysql   | tidb_kernel_options   | create table  | public       |         1 |      108 |         0 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | synced |             |
  |    107 | mysql   | index_advisor_results | create table  | public       |         1 |      106 |         0 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.823000 | 2025-07-26 03:22:35.823000 | synced |             |
  |    105 | sys     | schema_unused_indexes | create view   | public       |       102 |      104 |         0 | 2025-07-26 03:22:35.722000 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.772000 | synced |             |
  |    103 | sys     |                       | create schema | public       |       102 |        0 |         0 | 2025-07-26 03:22:35.673000 | 2025-07-26 03:22:35.673000 | 2025-07-26 03:22:35.722000 | synced |             |
  +--------+---------+-----------------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-------------+
  10 rows in set (0.00 sec)
  ```

+ 再度[Grafana dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000)に戻り、`tidb-demo-TiKV-Details` の `Cluster` タブでは、各 TiKV ノードの CPU使用率 と IO使用率 `IO utilization` が下降し始めていることが確認できます。

  ![70%](https://lab-static.pingcap.com/images/2025/7/26/c9b18218778b0185dc6275b6938ca41b30d9a8b6.png)

+ 前の手順で実行したDDLタスクを、コマンド `ADMIN PAUSE DDL JOBS` とDDLタスクの `JOB_ID` を使用して再度一時停止します。`error: [ddl:8224]DDL Job:119 not found` というエラーが表示されます。出力は例と異なる場合があります。

  ```sql
  ADMIN PAUSE DDL JOBS 119;
  ```

  ```output
  +--------+----------------------------------------+
  | JOB_ID | RESULT                                 |
  +--------+----------------------------------------+
  | 119    | error: [ddl:8224]DDL Job:119 not found |
  +--------+----------------------------------------+
  1 row in set (0.00 sec)
  ```

### 手順 6. `ADMIN CANCEL DDL` コマンドを使用して、実行中のDDL操作をキャンセルします

> [!TIP]
> 本手順の各コマンドの実行時間間隔は1分を超えないようにお願いします。そうしないと、期待される結果が得られない可能性があります。

+ [ターミナル 1](ssh://monitor1-ssh#1) で、テーブル `test.ddl_test2` にインデックスを追加し、`content` 列の属性を変更します。注意: コマンドが完了するまで待たないでください。

  ```sql
  ALTER TABLE test.ddl_test2 ADD INDEX idx_content_updated_at(content, updated_at);ALTER TABLE test.ddl_test2 MODIFY `content` VARCHAR(32) DEFAULT '0000000000' COMMENT 'content';
  ```

[ターミナル 2](ssh://monitor1-ssh#2) で、コマンド `ADMIN SHOW DDL JOBS` を使用して、前のステップで実行されたDDLタスクの `JOB_ID` を見つけます。例では `JOB_ID` は `121`、`DB_NAME` は `test`、`TABLE_NAME` は `ddl_test2`、`JOB_TYPE` は `modify column`、`SCHEMA_STATE STATE` は `write reorganization`、`STATE` は `running` となり、該当するDDLタスクが実行中であることを示しています。なお、出力は例と異なる場合がありますので注意してください。

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME            | JOB_TYPE      | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE   | COMMENTS    |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  |    121 | test    | ddl_test2             | modify column | write reorganization |         2 |      112 |         0 | 2025-07-26 04:47:03.372000 | 2025-07-26 04:47:03.423000 | NULL                       | running |             |
  |    120 | test    | ddl_test2             | add index     | public               |         2 |      112 |   4194304 | 2025-07-26 04:46:38.423000 | 2025-07-26 04:46:38.472000 | 2025-07-26 04:46:49.472000 | synced  | ingest, DXF |
  |    119 | test    | ddl_test1             | modify column | public               |         2 |      110 |   4194304 | 2025-07-26 04:01:29.723000 | 2025-07-26 04:01:29.772000 | 2025-07-26 04:25:44.122000 | synced  |             |
  |    118 | test    | ddl_test1             | add index     | public               |         2 |      110 |   4194304 | 2025-07-26 04:01:10.173000 | 2025-07-26 04:01:10.222000 | 2025-07-26 04:01:21.222000 | synced  | ingest, DXF |
  |    117 | test    | ddl_test4             | create table  | public               |         2 |      116 |         0 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.473000 | synced  |             |
  |    115 | test    | ddl_test3             | create table  | public               |         2 |      114 |         0 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.423000 | 2025-07-26 03:28:35.423000 | synced  |             |
  |    113 | test    | ddl_test2             | create table  | public               |         2 |      112 |         0 | 2025-07-26 03:28:35.322000 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.373000 | synced  |             |
  |    111 | test    | ddl_test1             | create table  | public               |         2 |      110 |         0 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.322000 | synced  |             |
  |    109 | mysql   | tidb_kernel_options   | create table  | public               |         1 |      108 |         0 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | synced  |             |
  |    107 | mysql   | index_advisor_results | create table  | public               |         1 |      106 |         0 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.823000 | 2025-07-26 03:22:35.823000 | synced  |             |
  |    105 | sys     | schema_unused_indexes | create view   | public               |       102 |      104 |         0 | 2025-07-26 03:22:35.722000 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.772000 | synced  |             |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------+-------------+
  11 rows in set (0.01 sec)
  ```

+ [ターミナル 2](ssh://monitor1-ssh#2) で、`ADMIN CANCEL DDL` コマンドを使用して、実行中のDDL操作をキャンセルします。

  ```sql
  ADMIN CANCEL DDL JOBS 121;
  ```

  ```output
  +--------+------------+
  | JOB_ID | RESULT     |
  +--------+------------+
  | 121    | successful |
  +--------+------------+
  1 row in set (0.01 sec)
  ```

+ [ターミナル 2](ssh://monitor1-ssh#2) で、コマンド `ADMIN SHOW DDL JOBS` を使用して、先ほどキャンセルされたDDLタスクの状態を確認します。例では `JOB_ID` は `121`、`STATE` は `cancelling` となり、現在キャンセル中であることを示しています。なお、出力は例と異なる場合がありますので注意してください。

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+------------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME            | JOB_TYPE      | SCHEMA_STATE         | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE      | COMMENTS    |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+------------+-------------+
  |    121 | test    | ddl_test2             | modify column | write reorganization |         2 |      112 |         0 | 2025-07-26 04:47:03.372000 | 2025-07-26 04:47:03.423000 | NULL                       | cancelling |             |
  |    120 | test    | ddl_test2             | add index     | public               |         2 |      112 |   4194304 | 2025-07-26 04:46:38.423000 | 2025-07-26 04:46:38.472000 | 2025-07-26 04:46:49.472000 | synced     | ingest, DXF |
  |    119 | test    | ddl_test1             | modify column | public               |         2 |      110 |   4194304 | 2025-07-26 04:01:29.723000 | 2025-07-26 04:01:29.772000 | 2025-07-26 04:25:44.122000 | synced     |             |
  |    118 | test    | ddl_test1             | add index     | public               |         2 |      110 |   4194304 | 2025-07-26 04:01:10.173000 | 2025-07-26 04:01:10.222000 | 2025-07-26 04:01:21.222000 | synced     | ingest, DXF |
  |    117 | test    | ddl_test4             | create table  | public               |         2 |      116 |         0 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.473000 | synced     |             |
  |    115 | test    | ddl_test3             | create table  | public               |         2 |      114 |         0 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.423000 | 2025-07-26 03:28:35.423000 | synced     |             |
  |    113 | test    | ddl_test2             | create table  | public               |         2 |      112 |         0 | 2025-07-26 03:28:35.322000 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.373000 | synced     |             |
  |    111 | test    | ddl_test1             | create table  | public               |         2 |      110 |         0 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.322000 | synced     |             |
  |    109 | mysql   | tidb_kernel_options   | create table  | public               |         1 |      108 |         0 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | synced     |             |
  |    107 | mysql   | index_advisor_results | create table  | public               |         1 |      106 |         0 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.823000 | 2025-07-26 03:22:35.823000 | synced     |             |
  |    105 | sys     | schema_unused_indexes | create view   | public               |       102 |      104 |         0 | 2025-07-26 03:22:35.722000 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.772000 | synced     |             |
  +--------+---------+-----------------------+---------------+----------------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+------------+-------------+
  11 rows in set (0.01 sec)
  ```

+ [ターミナル 2](ssh://monitor1-ssh#2) で、1分間待ってから、コマンド `ADMIN SHOW DDL JOBS` を何度か実行して、先ほどキャンセルされたDDLタスクの状態を確認します。例では `JOB_ID` は `121`、`STATE` は `rollback done` となり、タスクがキャンセル完了したことを示しています。出力結果は例と異なる場合がありますので注意してください。

  ```sql
  ADMIN SHOW DDL JOBS;
  ```

  ```output
  +--------+---------+-----------------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  | JOB_ID | DB_NAME | TABLE_NAME            | JOB_TYPE      | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE         | COMMENTS    |
  +--------+---------+-----------------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  |    121 | test    | ddl_test2             | modify column | none         |         2 |      112 |         0 | 2025-07-26 04:47:03.372000 | 2025-07-26 04:47:03.423000 | 2025-07-26 04:48:39.472000 | rollback done |             |
  |    120 | test    | ddl_test2             | add index     | public       |         2 |      112 |   4194304 | 2025-07-26 04:46:38.423000 | 2025-07-26 04:46:38.472000 | 2025-07-26 04:46:49.472000 | synced        | ingest, DXF |
  |    119 | test    | ddl_test1             | modify column | public       |         2 |      110 |   4194304 | 2025-07-26 04:01:29.723000 | 2025-07-26 04:01:29.772000 | 2025-07-26 04:25:44.122000 | synced        |             |
  |    118 | test    | ddl_test1             | add index     | public       |         2 |      110 |   4194304 | 2025-07-26 04:01:10.173000 | 2025-07-26 04:01:10.222000 | 2025-07-26 04:01:21.222000 | synced        | ingest, DXF |
  |    117 | test    | ddl_test4             | create table  | public       |         2 |      116 |         0 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.423000 | 2025-07-26 03:28:36.473000 | synced        |             |
  |    115 | test    | ddl_test3             | create table  | public       |         2 |      114 |         0 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.423000 | 2025-07-26 03:28:35.423000 | synced        |             |
  |    113 | test    | ddl_test2             | create table  | public       |         2 |      112 |         0 | 2025-07-26 03:28:35.322000 | 2025-07-26 03:28:35.373000 | 2025-07-26 03:28:35.373000 | synced        |             |
  |    111 | test    | ddl_test1             | create table  | public       |         2 |      110 |         0 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.272000 | 2025-07-26 03:28:35.322000 | synced        |             |
  |    109 | mysql   | tidb_kernel_options   | create table  | public       |         1 |      108 |         0 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | 2025-07-26 03:22:35.872000 | synced        |             |
  |    107 | mysql   | index_advisor_results | create table  | public       |         1 |      106 |         0 | 2025-07-26 03:22:35.772000 | 2025-07-26 03:22:35.823000 | 2025-07-26 03:22:35.823000 | synced        |             |
  +--------+---------+-----------------------+---------------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+---------------+-------------+
  10 rows in set (0.01 sec)
  ```

+ [ターミナル 1](ssh://monitor1-ssh#1) で、テーブル `test.ddl_test2` の `content` 列の属性を変更する操作がキャンセルされ、復元できないことが確認されました。

  ```output
  Query OK, 0 rows affected (10.47 sec)

  ERROR 8214 (HY000): Cancelled DDL job
  ```

+ 本モジュールはここで終了します。
