语法
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任务状态的命令。