1

我有 2 个 mysql 服务器,它们之间设置了循环复制。在两台服务器上进行从属状态检查表明一切正常。但是,当对 server1 上的表进行更新时,server2 不会立即同步。有时它会在几分钟后同步。有时它只会在 server2 上的 mysqld 重新启动后才会同步。

我有

innodb_flush_log_at_trx_commit = 1

同步二进制日志 = 1

在我的 my.cnf 文件中。

有任何想法吗?

4

1 回答 1

1

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

同步二进制日志上的 MySQL 文档说

值 1 是最安全的选择,因为在发生崩溃时,您最多会从二进制日志中丢失一个语句或事务。然而,它也是最慢的选择(除非磁盘有电池支持的缓存,这使得同步非常快)。

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

我也建议使用

[mysqld]
innodb_flush_method=O_DIRECT

innodb_flush_method我在DBA StackExchange中写过

于 2012-12-18T21:16:45.387 回答