Mysql中的sync_binlog参数
浏览:2020次 出处信息
sync_binlog=1 or N
This makes MySQL synchronize the binary log’s contents to disk each time it commits a transaction
默认情况下,并不是每次写入时都将binlog与硬盘同步。
因此如果操作系统或机器(不仅仅是MySQL服务器)崩溃,有可能binlog中最后的语句丢失了。要想防止这种情况,你可以使用sync_binlog全局变量(1是最安全的值,但也是最慢的),使binlog在每N次binlog写入后与硬盘同步。
即使sync_binlog设置为1,出现崩溃时,也有可能表内容和binlog内容之间存在不一致性。
如果使用InnoDB表,MySQL服务器处理COMMIT语句,它将整个事务写入binlog并将事务提交到InnoDB中。
如果在两次操作之间出现崩溃,重启时,事务被InnoDB回滚,但仍然存在binlog中。
可以用--innodb-safe-binlog选项来增加InnoDB表内容和binlog之间的一致性。(注释:在MySQL 5.1中不需要--innodb-safe-binlog;由于引入了XA事务支持,该选项作废了),该选项可以提供更大程度的安全,使每个事务的binlog(sync_binlog =1)和(默认情况为真)InnoDB日志与硬盘同步,该选项的效果是崩溃后重启时,在滚回事务后,MySQL服务器从binlog剪切回滚的InnoDB事务。这样可以确保binlog反馈InnoDB表的确切数据等,并使从服务器保持与主服务器保持同步(不接收 回滚的语句)。
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:利用binlog来恢复数据库
后一篇:Mysql 查询的一些优化技巧 >>
文章信息
- 作者:Incessant 来源: Incessant
- 标签: sync_binlog
- 发布时间:2009-10-11 22:40:53
近3天十大热文
-
[1160] WordPress插件开发 -- 在插件使用 -
[65] 解决 nginx 反向代理网页首尾出现神秘字 -
[48] Java开发岗位面试题归类汇总 -
[44] web开发设计人员不可不用的在线web工具和 -
[33] Rax 系列教程(长列表) -
[32] 手机产品设计方向 -
[32] 一句话crontab实现防ssh暴力破解 -
[30] 如何建立合适的索引? -
[29] 程序员疫苗:代码注入 -
[28] oracle技术方面的路线