原文地址:Http://blog.csdn.net/zbszhangbosen/article/details/7434173 FLUSH TABLES WITH READ LOCK 作用
1. 对于myisam存储引擎,从数据库外部拷贝.frm,.fyd,.fyi文件后,执行FLUSH TABLES/FLUSH TABLES WITH READ LOCK后,就可以使用新表了,这个功能非常有用,备份变得格外简单
2. Mysqldump中从主库中拉出一个副本后通过change master后就可以快速搭建slave,为了获得一个一致性点,一般会使用参数–single-transaction和–master-data,它会使用FLUSH TABLES WITH READ LOCK阻塞事务commit写binlog来获得transaction开始时主库binlog位置
3. 与FLUSH TABLES相似,清空table_cache
除了这几个重要作用外,目前还没有发现其他用处,而且对于InnoDB存储引擎,第一条就没用了
1. 后面多了 WITH READ LOCK使得这两个sql命令差很大,FLUSH TABLES WITH READ LOCK会在global read lock上加S锁,这会导致整个系统变得只读
2. FLUSH TABLES WITH READ LOCK后必须显示执行UNLOCK TABLES,否则整个系统会一直处于只读状态,这个问题非常隐晦,因为FLUSH TABLES WITH READ LOCK完成后在“show processlist”中无法被观察到,除非这个session自己执行unlock tables或者拥有root权限用户kill这个session,重复一次:FLUSH TABLES WITH READ LOCK后一定要UNLOCK TABLES,除非你想让系统只读!
3. FLUSH TABLES在以上三点都被用到,对于1和3很好理解,2中怎么会用到呢?查看mysqldump.c的代码及注释:
|
--结束END--
本文标题: 【Mysql】FLUSH TABLES WITH READ LOCK
本文链接: https://www.lsjlt.com/news/49369.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-06-06
2024-06-06
2024-06-05
2024-06-04
2024-06-04
2024-06-03
2024-06-03
2024-06-03
2024-06-04
2024-06-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0