管理者によるDDLジョブの一時停止
ADMIN PAUSE DDL
は実行中のDDLジョブを一時停止します。2 job_id
ADMIN SHOW DDL JOBS
実行することで確認できます。
この文を使用すると、発行済みだがまだ実行が完了していないDDLジョブを一時停止できます。一時停止後、DDLジョブを実行するSQL文はすぐには戻りませんが、まだ実行中であるように見えます。すでに完了しているDDLジョブを一時停止しようとすると、列RESULT
にエラーDDL Job:90 not found
表示されます。これは、ジョブがDDL待機キューから削除されたことを示します。
概要
- AdminPauseDDLStmt
- NumList
AdminPauseDDLStmt ::=
'ADMIN' 'PAUSE' 'DDL' 'JOBS' NumList
NumList ::=
Int64Num ( ',' Int64Num )*
例
ADMIN PAUSE DDL JOBS
現在実行中のDDLジョブを一時停止し、ジョブが正常に一時停止されたかどうかを返します。ジョブはADMIN RESUME DDL JOBS
で再開できます。
ADMIN PAUSE DDL JOBS job_id [, job_id] ...;
一時停止に失敗した場合は、失敗の具体的な理由が表示されます。
注記:
- このステートメントは DDL ジョブを一時停止できますが、他の操作や環境の変更 (マシンの再起動やクラスターの再起動など) では、クラスターのアップグレードを除き、DDL ジョブは一時停止されません。
- クラスタのアップグレード中は、実行中のDDLジョブが一時停止され、アップグレード中に開始されたDDLジョブも一時停止されます。アップグレード後、一時停止されていたすべてのDDLジョブは再開されます。アップグレード中の一時停止と再開の操作は自動的に実行されます。詳細はTiDB スムーズアップグレードご覧ください。
- このステートメントは複数のDDLジョブを一時停止できます。1
ADMIN SHOW DDL JOBS
ステートメントを使用して、DDLジョブのjob_id
のステートメントを取得できます。
MySQLの互換性
このステートメントは、MySQL 構文に対する TiDB 拡張です。