我被告知,在mysql同步中,为了确保所有内容都被复制并且数据是安全的,syn_binlog设置(在my.conf中)应该设置为1。
只有这样才会扼杀性能,解决这个问题的最佳方法是什么?
我还读到,这主要是造成linux上ext3文件系统的原因。将sync_binlog设置为0安全吗?
基本上,真正的问题是,如果不想丢失数据,是否需要打开sync_binlog?
发布于 2010-09-21 15:15:48
性能的影响是额外的搜索和写入的成本。sync_binlog =1基本上告诉MySQL在刷新日志写入磁盘之前向缓冲区写入了多少个二进制日志。如果它被设置为1,那么每个写都会被刷新。0告诉MySQL让文件系统处理它。因此,如果磁盘故障,则可能会丢失一些不确定数量的二进制日志写入,这些日志写入是上一个事务的一部分。
取决于您的存储设置(SAN与电池支持缓存,直接连接驱动器,等等)0的设置可能是安全的,也可能不是。您和您的应用程序能容忍多少数据丢失?
要引用MySQL引用:
sync_binlog的默认值是0,它不与磁盘同步。值1是最安全的选择,因为在发生崩溃时,您最多会丢失二进制日志中的一条语句或事务。然而,它也是最慢的选择(除非磁盘有一个电池支持的缓存,这使得同步非常快)。
https://serverfault.com/questions/183121
复制相似问题