FLUSH TABLES WITH READ LOCK语句会关闭所有打开的表,并将所有数据库的表加上全局只读锁。
这对于备份来说十分方便。如果有像 Veritas 或 ZFS 这样的文件系统,你可以对备份打快照。
也可以直接拷贝要备份的表文件到备份目录
cp -r /data_dir/ /back_dir
使用 UNLOCK TABLES 语句来释放锁。
--例子一
--会话①
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.04 sec)
--会话②,DML操作会hang住
mysql> insert into test values(10,'LEADER','Beijing');
--会话①
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.01 sec)
--会话②,DML操作成功
mysql> insert into test values(10,'LEADER','Beijing');
Query OK, 1 row affected (18 min 44.54 sec)