5

从概念上讲,Master-Master 复制是如何工作的?

我认为冲突将是一种常见的情况,需要以某种方式解决。

4

2 回答 2

2

主-主复制(更一般地说——多主复制)在概念上的工作原理是假设冲突并不常见,并且只保持整个系统松散一致,主服务器之间的异步通信更新,这最终违反了基本的 ACID 属性。

正如 carmbrester 正确建议的那样(并且独立于 MySQL),密钥生成是一种重要的冲突缓解策略(例如,生成相同的 ID)。除此之外,我认为关键是将多主机系统中的冲突视为类似于乐观锁定模型中的冲突。两者都成功了,因为与收益相比,剩余的风险通常很小。

但是,可能会发生冲突(如您所建议的),并且不同的供应商提供不同的策略。例如,Oracle 允许 DBA 从一系列冲突解决基础(时间戳、亲和性等)和后续操作(在队列中记录错误等)中进行选择。在http://www.orafaq.com/wiki/Advanced_Replication_FAQ#What_happens_if_two_or_more_sites_change_the_same_data.3F上查看有关 Oracle 的更多详细信息

于 2011-01-09T22:33:12.743 回答
1

上下文很重要,但这里有一些关于 MySql 如何处理场景的信息......

来自每个 master 的 binlog 被读取并在另一个 master 上执行。配置自动增量偏移量,以便主键不会发生冲突,即其中一个主键将配置一个偏移量,导致在自动增量期间使用偶数,而另一个主键将配置为在自动期间使用奇数-增量。

对于也可以配置双主服务器的 MySql 集群复制,您可以配置如何处理冲突,如此链接中所述。

于 2011-01-09T22:25:54.427 回答