管理者が DDL をキャンセル

ADMIN CANCEL DDLステートメントを使用すると、実行中の DDL ジョブをキャンセルできます。 job_id ADMIN SHOW DDL JOBSを実行すると見つかります。

ADMIN CANCEL DDLステートメントを使用すると、コミットされたがまだ実行が完了していない DDL ジョブをキャンセルすることもできます。キャンセル後、DDL ジョブを実行する SQL ステートメントはERROR 8214 (HY000): Cancelled DDL jobエラーを返します。すでに完了した DDL ジョブをキャンセルすると、 RESULT列にDDL Job:90 not foundエラーが表示されます。これは、ジョブが DDL 待機キューから削除されたことを示します。

あらすじ

AdminStmt
ADMINSHOWDDLJOBSInt64NumWhereClauseOptionalJOBQUERIESNumListTableNameNEXT_ROW_IDSLOWAdminShowSlowCHECKTABLETableNameListINDEXTableNameIdentifierHandleRange,RECOVERINDEXTableNameIdentifierCLEANUPINDEXTableNameIdentifierTABLELOCKTableNameListCHECKSUMTABLETableNameListCANCELDDLJOBSNumListRELOADEXPR_PUSHDOWN_BLACKLISTOPT_RULE_BLACKLISTBINDINGSPLUGINSENABLEDISABLEPluginNameListREPAIRTABLETableNameCreateTableStmtFLUSHCAPTUREEVOLVEBINDINGS
NumList
Int64Num,

現在実行中の DDL ジョブをキャンセルし、対応するジョブが正常にキャンセルされたかどうかを返すには、 ADMIN CANCEL DDL JOBSを使用します。

ADMIN CANCEL DDL JOBS job_id [, job_id] ...;

操作がジョブのキャンセルに失敗した場合は、特定の理由が表示されます。

ノート:

  • DDL ジョブをキャンセルできるのはこの操作のみです。他のすべての操作や環境の変更 (マシンの再起動やクラスターの再起動など) では、これらのジョブをキャンセルすることはできません。
  • この操作により、複数の DDL ジョブを同時にキャンセルできます。 ADMIN SHOW DDL JOBSステートメントを使用して DDL ジョブの ID を取得できます。
  • キャンセルしたいジョブが終了している場合、キャンセル操作は失敗します。

MySQLの互換性

このステートメントは、MySQL 構文に対する TiDB 拡張機能です。

こちらも参照

このページは役に立ちましたか?