语法
SHOW [FULL] DDL;
示例
mysql> show ddl\G;
1. row **JOB_ID: 1359947811109470208
OBJECT_SCHEMA: d1
OBJECT_NAME: t2
ENGINE: DAG
DDL_TYPE: ALTER_TABLE
STATE: PAUSED
BACKFILL_PROGRESS: 0%
PHY_DDL_PROGRESS: 100%
PROGRESS: 20%
START_TIME: 2021-08-05 11:01:25.291
END_TIME: 2021-08-05 11:02:27.020
ELAPSED_TIME(MS): 61729
PHY_PROCESS:
CANCELABLE: true
1 row in set (0.03 sec)
返回参数说明
参数名称 | 说明 |
JOB_ID | DDL任务唯一标识,取值需为64位有符号长整型数值。 |
OBJECT_SCHEMA | DDL任务对象的Schema名称。 |
OBJECT_NAME | DDL任务对象名称,例如当前执行DDL的表名称。 |
ENGINE | DDL任务引擎类型,默认为DAG。 |
DDL_TYPE | DDL任务类型,例如,CREATE_TABLE 。 |
STATE | DDL任务当前所处的状态,具体请参见DDL状态。 |
BACKFILL_PROGRESS | DDL任务中,数据回填的进度。 |
PHY_DDL_PROGRESS | DDL任务中,当前执行的一批物理DDL的进度。 |
PROGRESS | DDL任务的总体进度。 |
START_TIME | DDL任务开始执行的时间。 |
END_TIME | DDL任务结束执行的时间。 |
ELAPSED_TIME(MS) | DDL任务截止到任务查看时已经消耗的时间,单位:毫秒。 |
PHY_PROCESS | 执行中的物理DDL的状态。 |
CANCELABLE | DDL任务是否可通过CANCEL DDL 命令取消。 |
DDL状态
SHOW DDL命令返回的STATE字段标示了DDL任务的状态,状态转移图如下所示:
绝大多数情况,DDL任务会按照QUEUED->RUNNING->COMPLETED
的流程执行成功。
异常情况下,DDL任务可能会自动回滚,此时的流程为QUEUED->RUNNING->ROLLBACK_RUNNING->ROLLBACK_COMPLETED
。
特殊情况下,DDL任务的状态还可以通过命令干预,上图中箭头上展示的是可用于修改DDL任务状态的命令。