我可以使用什么解决方案跨城市进行MySQL复制?

我可以使用什么解决方案跨城市进行MySQL复制?,mysql,database-replication,Mysql,Database Replication,我们正在研究MySQL复制体系结构的选项,以及当前设置的相关详细信息: 我们在不同的城市管理几个分支机构 每个分支都有相同的数据库结构 所有表上的每个主键都以分支标识符作为前缀 如果一个分支发生网络中断,我们需要它继续工作,并且一旦连接恢复,它必须与主分支同步 由于我们没有任何机会在任何表上获得重复的索引,我正在考虑类似于MySQL multi-master的东西,或者可能Percona XtraDB Cluster或Worden,但我找不到有关单个节点与其他节点隔离时会发生什么情况以及恢复

我们正在研究MySQL复制体系结构的选项,以及当前设置的相关详细信息:

  • 我们在不同的城市管理几个分支机构
  • 每个分支都有相同的数据库结构
  • 所有表上的每个主键都以分支标识符作为前缀
  • 如果一个分支发生网络中断,我们需要它继续工作,并且一旦连接恢复,它必须与主分支同步
由于我们没有任何机会在任何表上获得重复的索引,我正在考虑类似于MySQL multi-master的东西,或者可能Percona XtraDB ClusterWorden,但我找不到有关单个节点与其他节点隔离时会发生什么情况以及恢复连接后接收到的数据会发生什么情况的文档


有没有适合这种设置的经验证的方法?如果您能给我任何建议,我将不胜感激。

对于钨,其性能取决于使用方法

您似乎在描述一个宽松的一致性模型。但是没有现成的集群解决方案能够解决您的所有问题。当然,如果您确保每个记录只在其“主”数据库中修改过,那么您就不会遇到很多问题,但此模型还要求您将所有数据复制到所有位置。带宽可能不是问题,它确实提供了良好的灾难恢复功能,但存储和可扩展性可能成为问题


如果您有一个集中的、管理良好的数据中心,那么另一种方法是让每个分支运行一个异步双主机-一个位于分支,另一个位于数据中心,然后运行您自己的脚本来整合数据集。

多主机复制可以工作,只要在节点不同步时不对相同的数据执行更新。在这种情况下,它将以静默方式应用更改,因此您的数据将变得不一致


如果不这样做,我认为这是最好的解决方案,因为MySQL负责二进制日志指针和处理重新连接。只需确保在主机之间正确配置了
自动增量偏移
设置。无论如何,我刚刚用2台主服务器测试了此部署(生产7年,没有什么问题)。

在我以前的工作中,我们使用sql server复制来避免孤立。我们的每个客户都有自己的“服务器”,我们的数据场上有一个副本。因此,如果在任何情况下(经常发生),我们在代码中固定指向我们的服务器,而不是他们的服务器。