我对此进行了大量的阅读,但我仍然不确定我的立场是什么。
当两个主服务器都接收写入时,是否会发生数据库冲突(然后损坏)?
现在 MySQL(我在 Debian 和 Ubuntu 上使用 5.1)已经自动增量运行,是否可以避免这种情况并适合生产?
我已经研究过 MMM 仅启用一个主机进行写入,但是它有自己的问题,并且我的拓扑实际上适合让两个主机都接收写入。
我不确定我是否相信这一点:http://www.neocodesoftware.com/replication/
有 MySQL 专家可以帮忙吗?非常感谢。
- 编辑 -
我读过的文章或我问过的人中有一半说即使使用自动增量,你仍然会遇到损坏...而另一半说你不会!有谁经营过繁忙的网站,可以澄清一下吗?
答案1
除非您采取适当的预防措施,否则这是一个非常现实的问题。简而言之,您在每台服务器上的配置需要设置两个值。
- auto_increment_increment
- 自动增量偏移量
auto_increment_offset
应设置使得每个主控都有一个唯一值,通常第一个为 1,第二个为 2,等等。
auto_increment_increment
是增量的步长,并且至少应为链中的主服务器数量。例如,对于简单的双服务器设置,该值应为 2(或更多)。
答案2
如果没有大量的自定义代码,就无法使其可靠地工作。问题是异步复制将引发冲突和冲突,需要通过巧妙编写和完美实施的算法来巧妙解决。你不会有这样的情况。使用MySQL 集群设置相反,如果您需要多主操作并且可以处理它带来的限制。