【发布时间】:2021-04-06 15:10:51
【问题描述】:
我尝试用 3 个系统实现 MySQL 复制。
在我的设置中,我有如下配对
(Master ,Slave )
(System_1,System_2)
(System_1,System_3)
(System_2,System_1)
(System_2,System_3)
(System_3,System_1)
(System_3,System_2)
因此,在此设置中,每个系统都是其他所有系统的主从系统。
每个系统也都有本地数据库。
现在在简单的情况下一切正常。但是在测试中我面临一个问题是......
假设某个时刻 System_3 断开连接,而不是此时所有 3 个系统都有一些条目,直到 id=3(主键和唯一)。
系统_1
| id | Value |
|---|---|
| 1 | abc |
| 2 | xyz |
| 3 | pqr |
系统_2
| id | Value |
|---|---|
| 1 | abc |
| 2 | xyz |
| 3 | pqr |
系统_3
| id | Value |
|---|---|
| 1 | abc |
| 2 | xyz |
| 3 | pqr |
现在说,当 System_3 离线时,它在本地表中创建了一些 id 为 4 的条目,同时其他两个系统,即 System_1、System_2 在线,创建了一些也将使用 id 4 的条目在他们各自的表中进行复制。
现在说 System_3 上线,它将读取其他系统的 bin 日志文件,并尝试插入其他系统所做的更改以在 id 4 处复制。但是繁荣 System_3 已经在 id 4 处具有值。这里复制停止了。
我的问题是如何解决这个问题。
【问题讨论】:
标签: mysql replication database-replication mysqlbinlog multi-master-replication