即使使用自动增量,主-主数据库冲突仍然是一个问题吗?

即使使用自动增量,主-主数据库冲突仍然是一个问题吗?

我对此进行了大量的阅读,但我仍然不确定我的立场是什么。

当两个主服务器都接收写入时,是否会发生数据库冲突(然后损坏)?

现在 MySQL(我在 Debian 和 Ubuntu 上使用 5.1)已经自动增量运行,是否可以避免这种情况并适合生产?

我已经研究过 MMM 仅启用一个主机进行写入,但是它有自己的问题,并且我的拓扑实际上适合让两个主机都接收写入。

我不确定我是否相信这一点:http://www.neocodesoftware.com/replication/

有 MySQL 专家可以帮忙吗?非常感谢。

- 编辑 -

我读过的文章或我问过的人中有一半说即使使用自动增量,你仍然会遇到损坏...而另一半说你不会!有谁经营过繁忙的网站,可以澄清一下吗?

答案1

除非您采取适当的预防措施,否则这是一个非常现实的问题。简而言之,您在每台服务器上的配置需要设置两个值。

  1. auto_increment_increment
  2. 自动增量偏移量

auto_increment_offset应设置使得每个主控都有一个唯一值,通常第一个为 1,第二个为 2,等等。

auto_increment_increment是增量的步长,并且至少应为链中的主服务器数量。例如,对于简单的双服务器设置,该值应为 2(或更多)。

答案2

如果没有大量的自定义代码,就无法使其可靠地工作。问题是异步复制将引发冲突和冲突,需要通过巧妙编写和完美实施的算法来巧妙解决。你不会有这样的情况。使用MySQL 集群设置相反,如果您需要多主操作并且可以处理它带来的限制。

相关内容