LOCK INSTANCE FOR BACKUP
UNLOCK INSTANCE
LOCK INSTANCE FOR BACKUP获取实例级别的备份锁,该锁在联机备份期间允许DML,同时防止可能导致快照不一致的操作。
执行LOCK INSTANCE FOR BACKUP 语句需要BACKUP_ADMIN 特权。当执行从早期版本到MySQL 8.0的就地升级时,该BACKUP_ADMIN 特权将自动授予具有该RELOAD特权的用户 。
多个会话可以同时持有备份锁。
UNLOCK INSTANCE释放当前会话持有的备份锁。如果会话终止,则会话保留的备份锁也会释放。
LOCK INSTANCE FOR BACKUP防止创建,重命名或删除文件。 REPAIR TABLE TRUNCATE TABLE, OPTIMIZE TABLE和帐户管理对帐单等被阻止。修改未记录在重做日志中的文件的操作也被阻止。
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在放弃之前语句等待获取锁的时间。