MySQL复制定位变化

标签 mysql

我使用 MySQL 主主复制的概念来同步两个服务器之间的数据。

现在对我来说存在的问题是,在编辑任何表中的某些数据时,更改会反射(reflect)在另一端。然而,只要在任一端完成数据更新或更改,master_log_pos 就会在每次更改时发生变化。

你能帮我解决这个问题吗?

提前致谢

最佳答案

这个问题对我来说似乎不清楚,因为您所描述的行为是正常的。当主服务器上的数据发生变化时,主服务器应该将这些更改写入其二进制日志,无论更改是在本地启动还是在复制流上进入......因此,如果,日志文件位置通常会在两台机器上提前>log_slave_updates 全局变量在每个 master 上打开。

您可以将其关闭,但您不应该这样做,因为这样,无论来源如何,两个服务器的 binlog 都不会拥有所有更改的完整副本,这会导致严重复杂化,甚至消除使用任一服务器的 binlog 进行时间点的可能性恢复。

如果您认为存在循环,那么您是部分正确的,因为确实存在。当“A”向“B”发送事件时,“B”将执行该事件,将其写入其二进制日志,并将该事件发送给所有连接的从站。当“A”从“B”接收到自己的事件时,它意识到自己是该事件的发起者,并丢弃它。原始服务器打破循环。

这是它唯一的工作方式,因为每个主设备都会向所有连接的从设备发送完全相同的二进制日志事件。如果“所有”从属没有意义,请回想一下,在主/主中,您还可以对每个主的一个或多个只读副本从属。如果两个主服务器没有将其传入的复制事件再次发送回所有从服务器,那么相对的从服务器将不可能存在。

关于MySQL复制定位变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293316/

相关文章:

mysql - 两次查询,结果重复

mysql - 产生以下输出的 SQL 查询?

php - 通过 PHP 调用的 MySQL 存储过程无法正常执行

php - 插入...重复 key 更新问题

mysql查询慢的问题

mysql - 表 "mysql"未找到 ."innodb_table_stats"

java - 找不到 com.mysql.jdbc.Driver

php - Wp-插入不工作

MYSQL - 无法获得正确的结果

php - 在 PHP 中动态创建 MySql 表并跟踪它们