iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >【Mysql】FLUSH TABLES WITH READ LOCK
  • 951
分享到

【Mysql】FLUSH TABLES WITH READ LOCK

2024-04-02 19:04:59 951人浏览 薄情痞子
摘要

原文地址:Http://blog.csdn.net/zbszhangbosen/article/details/7434173 FLUSH TABLES WITH READ LOCK 作用

原文地址: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存储引擎,第一条就没用了

FLUSH TABLES WITH READ LOCK vs. FLUSH TABLES

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的代码及注释:

static int do_flush_tables_read_lock(MYSQL *mysql_con) {  return ( mysql_query_with_error_report(mysql_con, 0, ((opt_master_data != 0) ? "FLUSH  TABLES" : "FLUSH TABLES")) || mysql_query_with_error_report(mysql_con, 0, "FLUSH TABLES WITH READ LOCK") ); }
您可能感兴趣的文档:

--结束END--

本文标题: 【Mysql】FLUSH TABLES WITH READ LOCK

本文链接: https://www.lsjlt.com/news/49369.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作