我有两个MySQL集群,它们之间有Master-Master复制设置。
大多数表是基于日志的,只有插入和select,所以它们在复制时没有任何问题。
但是,我有几张表格,它们保存了实时系统的当前“状态”信息。 这些表中的条目被更新,并且具有显示其最后更新的时间戳字段。
当复制中断时,这两个群集可能正在写入相同的行。
是否有可能让复制保留具有最新更新列的logging?
如果不是(我的研究显示它不可能),我可以用什么解决scheme呢?
如果您正在寻找这种事务性粒度,您可能需要使用基于行的复制而不是基于语句的复制。
你描述的情况被称为主 – 硕士环境的裂脑问题。 这是当两位大师不知道对方的存在,而另一位主人死的时候单独工作。 这实际上是这种高可用性设置中最具挑战性的问题。 为了正确处理这种情况,pipe理员应该设置一个策略,指定当两个主设备不能相互通信时哪个主设备应该成为主设备,然后将所有的数据库连接指向主设备。 这通常是由一个脚本实现的,该脚本监视通信并在发生裂脑时重新指定数据库连接。 之后,失败的事务将需要被同步回到已closures的主数据库。 我已经看到,Xeround 声称他们的数据库服务提供了自动的主 – 主部署来处理脑裂问题。