一條DDL語句會以一個DDL任務方式在PolarDB-X內部執行,使用SHOW DDL
命令可以查看當前PolarDB-X執行個體中的DDL任務。
文法
SHOW [FULL] DDL;
樣本
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任務狀態的命令。