2012-12-18 53 views
1

我有2个mysql服务器与它们之间建立循环复制。在两台服务器上进行从站状态检查显示一切正常。但是,当server1上的表上的更新完成时,server2不会立即同步。有时它会在几分钟后同步。有时它只会在server2上的mysqld重新启动后才会同步。MySQL复制没有正确同步

的innodb_flush_log_at_trx_commit = 1

sync_binlog = 1

在我的my.cnf文件

任何想法?

回答

1

sync-binlog可能是主要嫌疑人。

MySQL Documntation on sync-binlog says

值为1是最安全的选择,因为在发生碰撞的情况下,你失去从二进制日志最多一个语句或事务。但是,它也是最慢的选择(除非磁盘有电池支持的缓存,这使得同步非常快)。

我会检查你的磁盘控制器上的电池主

我也建议使用

[mysqld] 
innodb_flush_method=O_DIRECT 

我在DBA StackExchange

+0

innodb_flush_method服务器虚拟CentOS的服务器坐在Windows Server 2008主机上。所以我不确定虚拟磁盘在断电情况下的表现如何。 – mmeyer2k

+0

立即尝试binlog建议... – mmeyer2k

+0

这似乎工作得很好。谢谢! – mmeyer2k