多主机 mysql 复制位置
multimaster mysql replication position
我有一个循环 muli-master mysql 设置如下
DB1 ------> DB2 ------> DB3 --
| |
------------<---------------
我在相同数据和相同主位置索引的 3 个数据库服务器上初始化了一个复制,如果这个位置索引变得不相同,这是否意味着 3 个数据库后来变得不一致,只考虑一个master 正在被写入一次?
二进制日志坐标与数据一致的实例无关
您可以在 DB1 上写入二进制日志数周,然后进行备份并使用它来初始化 DB2。然后在一段时间后备份 DB2 并使用它来初始化 DB3。之后,所有三台服务器将具有相同的数据,但二进制日志文件和索引却大不相同。
您可以改为使用 Global Transaction IDs(不是二进制日志坐标)来管理复制。
无论如何,无论您如何管理复制,数据都存在不同步的风险。您可以 运行 包含 non-deterministic expressions. You could turn off binary logging temporarily 的查询。或者日志在传输到副本时可能会损坏。
如果要测试数据是否一致,使用pt-table-checksum。
我有一个循环 muli-master mysql 设置如下
DB1 ------> DB2 ------> DB3 --
| |
------------<---------------
我在相同数据和相同主位置索引的 3 个数据库服务器上初始化了一个复制,如果这个位置索引变得不相同,这是否意味着 3 个数据库后来变得不一致,只考虑一个master 正在被写入一次?
二进制日志坐标与数据一致的实例无关
您可以在 DB1 上写入二进制日志数周,然后进行备份并使用它来初始化 DB2。然后在一段时间后备份 DB2 并使用它来初始化 DB3。之后,所有三台服务器将具有相同的数据,但二进制日志文件和索引却大不相同。
您可以改为使用 Global Transaction IDs(不是二进制日志坐标)来管理复制。
无论如何,无论您如何管理复制,数据都存在不同步的风险。您可以 运行 包含 non-deterministic expressions. You could turn off binary logging temporarily 的查询。或者日志在传输到副本时可能会损坏。
如果要测试数据是否一致,使用pt-table-checksum。