文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  LOCK INSTANCE FOR BACKUP 和 UNLOCK INSTANCE 語法

15.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 9.0 時,擁有 RELOAD 權限的使用者會自動被授予 BACKUP_ADMIN 權限。

多個會話可以同時持有備份鎖定。

UNLOCK INSTANCE 會釋放目前會話持有的備份鎖定。如果會話終止,會話持有的備份鎖定也會被釋放。

LOCK INSTANCE FOR BACKUP 會防止檔案被建立、重新命名或移除。REPAIR TABLETRUNCATE TABLEOPTIMIZE TABLE 以及帳戶管理語法都會被封鎖。請參閱 第 15.7.1 節,「帳戶管理語法」。修改未記錄在 InnoDB 重做日誌中的 InnoDB 檔案的操作也會被封鎖。

LOCK INSTANCE FOR BACKUP 允許只影響使用者建立的臨時資料表的 DDL 操作。實際上,當持有備份鎖定時,屬於使用者建立的臨時資料表的檔案可以被建立、重新命名或移除。也允許建立二進位日誌檔案。

當執行個體的 LOCK INSTANCE FOR BACKUP 語法生效時,無法發出 PURGE BINARY LOGS 語法,因為它會透過從伺服器移除檔案來違反備份鎖定的規則。

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 語法在放棄之前等待取得鎖定的時間長度。