Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  LOCK INSTANCE FOR BACKUP and UNLOCK INSTANCE Statements

15.3.5 锁定实例以备用和解锁实例语句

LOCK INSTANCE FOR BACKUP

UNLOCK INSTANCE

锁定实例以备用 获取一个实例级别的 备份锁,允许在在线备份期间执行 DML,同时防止可能导致不一致快照的操作。

执行 锁定实例以备用 语句需要 BACKUP_ADMIN 权限。 BACKUP_ADMIN 权限自动授予具有 RELOAD 权限的用户在升级到 MySQL 8.3 时。

多个会话可以同时持有备份锁。

解锁实例 释放当前会话持有的备份锁。如果会话终止,备份锁也将被释放。

锁定实例以备用 防止文件被创建、重命名或删除。REPAIR TABLE TRUNCATE TABLE, OPTIMIZE TABLE 和账户管理语句被阻止。见 第 15.7.1 节,“账户管理语句”。修改 InnoDB 文件的操作(这些文件不记录在 InnoDB 重做日志中)也被阻止。

锁定实例以备用 允许仅影响用户创建的临时表的 DDL 操作。实际上,用户创建的临时表的文件可以在备份锁持有期间被创建、重命名或删除。二进制日志文件的创建也被允许。

PURGE BINARY LOGS 不能在实例上执行 锁定实例以备用 语句时发出,因为它违反了备份锁的规则,删除了服务器上的文件。

锁定实例以备用 获取的备份锁独立于事务锁和 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 设置定义了 锁定实例以备用 语句等待获取锁的时间量之前放弃。