【问题标题】:How does Master-Master replication work?Master-Master 复制是如何工作的?
【发布时间】:2011-06-06 05:38:20
【问题描述】:

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

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

【问题讨论】:

  • 文件,数据库,任何东西。无论上下文如何,master-master的概念仍然相同。
  • @user401839:是的,这个概念是一样的,但你问它是如何工作的,这将取决于上下文。这个概念过于模糊,无法在没有更多信息的情况下给出具体细节。
  • @skaffman,我已经更新了问题以使其更广泛。这有帮助吗?

标签: replication master


【解决方案1】:

主-主复制(更一般地——多主复制)在概念上的工作原理是假设冲突不常见,并且只保持整个系统松散一致,主节点之间的异步通信更新,这最终违反了基本的 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 的更多详细信息

【讨论】:

    【解决方案2】:

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

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

    对于MySql Clustering 复制,也可以配置双主,您可以配置如何处理冲突,如this link 中所述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      相关资源
      最近更新 更多