MySQL 8.0 リファレンスマニュアル


13.3.5 LOCK INSTANCE FOR BACKUP および UNLOCK INSTANCE ステートメント

LOCK INSTANCE FOR BACKUP

UNLOCK INSTANCE

LOCK INSTANCE FOR BACKUP は、オンラインバックアップ中に DML を許可するインスタンスレベルのバックアップロックを取得し、一貫性のないスナップショットを生成する可能性のある操作を防止します。

LOCK INSTANCE FOR BACKUP ステートメントを実行するには、BACKUP_ADMIN 権限が必要です。 以前のバージョンから MySQL 8.0 へのインプレースアップグレードを実行すると、RELOAD 権限を持つユーザーに BACKUP_ADMIN 権限が自動的に付与されます。

複数のセッションで同時にバックアップロックを保持できます。

UNLOCK INSTANCE は、現在のセッションで保持されているバックアップロックを解放します。 セッションが終了すると、セッションによって保持されているバックアップロックも解放されます。

LOCK INSTANCE FOR BACKUP では、ファイルの作成、名前変更または削除はできません。 REPAIR TABLE TRUNCATE TABLEOPTIMIZE TABLE およびアカウント管理ステートメントはブロックされます。 セクション13.7.1「アカウント管理ステートメント」を参照してください。 InnoDB redo ログに記録されていない InnoDB ファイルを変更する操作もブロックされます。

LOCK INSTANCE FOR BACKUP では、ユーザーが作成した一時テーブルにのみ影響する DDL 操作が許可されます。 実際には、バックアップロックが保持されている間に、ユーザーが作成した一時テーブルに属するファイルを作成、名前変更または削除できます。 バイナリログファイルの作成も許可されます。

LOCK INSTANCE FOR BACKUP によって取得されるバックアップロックは、FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK によって取得されるトランザクションロックおよびロックとは無関係であり、次の一連のステートメントが許可されます:

LOCK INSTANCE FOR BACKUP;
FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK;
UNLOCK TABLES;
UNLOCK INSTANCE;
FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK;
LOCK INSTANCE FOR BACKUP;
UNLOCK INSTANCE;
UNLOCK TABLES;

lock_wait_timeout 設定では、LOCK INSTANCE FOR BACKUP ステートメントがロックの取得を待機してから放棄する時間を定義します。


関連キーワード:  ステートメント, CREATE, TABLE, INSTANCE, DROP, LOCK, BACKUP, FOR, サブクエリー, ロック