天天看點

開發指南—DAL語句—DDL管理語句—SHOW DDL

文法

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

指令取消。

SHOW DDL指令傳回的STATE字段标示了DDL任務的狀态,狀态轉移圖如下所示:

開發指南—DAL語句—DDL管理語句—SHOW DDL

絕大多數情況,DDL任務會按照

QUEUED->RUNNING->COMPLETED

的流程執行成功。

異常情況下,DDL任務可能會自動復原,此時的流程為

QUEUED->RUNNING->ROLLBACK_RUNNING->ROLLBACK_COMPLETED

特殊情況下,DDL任務的狀态還可以通過指令幹預,上圖中箭頭上展示的是可用于修改DDL任務狀态的指令。