MySQL的SQL语句事务性语句和锁定语句LOCK INSTANCEFORBACKUP 等语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的SQL语句事务性语句和锁定语句LOCK INSTANCEFORBACKUP 等语句相关的知识,希望对你有一定的参考价值。

LOCK INSTANCE FOR BACKUP 和 UNLOCK INSTANCE 语句

1. LOCK INSTANCE FOR BACKUP
2. 
3. 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 TABLE, OPTIMIZE TABLE 和账户管理语句。没有记录在 InnoDB redo 日志中的修改 InnoDB 文件的操作也会被阻止。

LOCK INSTANCE FOR BACKUP 允许只影响用户创建的临时表的 DDL 操作。实际上,当持有备份锁时,可以创建、重命名或删除属于用户创建的临时表的文件。也允许创建二进制日志文件。

LOCK INSTANCE FOR BACKUP 获取的备份锁独立于事务性锁和 FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK 获得的锁,并且允许以下语句序列:

1. LOCK INSTANCE FOR BACKUP;
2. FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK;
3. UNLOCK TABLES;
4. UNLOCK INSTANCE;
1. FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK;
2. LOCK INSTANCE FOR BACKUP;
3. UNLOCK INSTANCE;
4. UNLOCK TABLES;

lock_wait_timeout 设置定义 LOCK INSTANCE FOR BACKUP 语句在放弃之前等待获取锁的时间。

官方网址:
https://dev.mysql.com/doc/refman/8.0/en/lock-instance-for-backup.html

以上是关于MySQL的SQL语句事务性语句和锁定语句LOCK INSTANCEFORBACKUP 等语句的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的SQL语句 -事务性语句和锁定语句- XA 事务 SQL 语句

MySQL的SQL语句 -事务性语句和锁定语句- SAVEPOINT

MySQL的SQL语句 -事务性语句和锁定语句- XA 事务状态

MySQL的SQL语句事务性语句和锁定语句5LOCKTABLES和UNLOCKTABLES 语句2

MySQL 锁等待超时(Lock wait timeout exceeded)

在oracle中,事务中使用下列SQL语句不会引起锁定?