管理者は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] ...;

ジョブをキャンセルする操作が失敗した場合は、具体的な理由が表示されます。

注記:

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

MySQL 互換性

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

参照

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