我有2个mysql服务器,它们之间设置了循环复制。在两台服务器上执行从属状态检查都会显示一切正常。但是,当对server1上的表进行更新时,server2不会立即同步。有时它会在几分钟后同步。有时它只会在重新启动server2上的mysqld后同步。
我有
innodb_flush_log_at_trx_commit = 1
和
sync_binlog = 1
在我的my.cnf文件中。
有什么想法吗?
答案 0 :(得分:1)
sync-binlog
可能是主要嫌疑人。
MySQL Documntation on sync-binlog says
值为1是最安全的选择,因为在崩溃的情况下,您最多会丢失二进制日志中的一个语句或事务。但是,它也是最慢的选择(除非磁盘具有电池备份缓存,这使得同步非常快)。
我会检查Master上的磁盘控制器电池
我还建议使用
[mysqld]
innodb_flush_method=O_DIRECT
中写过innodb_flush_method