我有 2 个 mysql 服务器,它们之间设置了循环复制。在两台服务器上进行从属状态检查表明一切正常。但是,当对 server1 上的表进行更新时,server2 不会立即同步。有时它会在几分钟后同步。有时它只会在 server2 上的 mysqld 重新启动后才会同步。
我有
innodb_flush_log_at_trx_commit = 1
和
同步二进制日志 = 1
在我的 my.cnf 文件中。
有任何想法吗?
我有 2 个 mysql 服务器,它们之间设置了循环复制。在两台服务器上进行从属状态检查表明一切正常。但是,当对 server1 上的表进行更新时,server2 不会立即同步。有时它会在几分钟后同步。有时它只会在 server2 上的 mysqld 重新启动后才会同步。
我有
innodb_flush_log_at_trx_commit = 1
和
同步二进制日志 = 1
在我的 my.cnf 文件中。
有任何想法吗?
sync-binlog
可能是主要嫌疑人。
值 1 是最安全的选择,因为在发生崩溃时,您最多会从二进制日志中丢失一个语句或事务。然而,它也是最慢的选择(除非磁盘有电池支持的缓存,这使得同步非常快)。
我会在 Master 上检查你的磁盘控制器电池
我也建议使用
[mysqld]
innodb_flush_method=O_DIRECT
innodb_flush_method
我在DBA StackExchange中写过