• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • BACK和LOCK INSTANCE语句的锁定实例

    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 TABLETRUNCATE TABLEOPTIMIZE TABLEInnoDBInnoDB

    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在放弃之前语句等待获取锁的时间。