使用MySQL复制在两个Percona Xtradb群集之间复制数据

我们目前有一个3节点的Percona Xtradb集群在单个数据中心中运行。 我们希望在发生灾难时增加容错function,以防止对单个数据中心的依赖,并将我们的Percona数据与第二个数据中心同步,以便在这种情况下我们可以轻松切换我们的应用程序以连接到新的同步群集事件。

虽然我知道我可以简单地在许多数据中心中添加更多的主节点,但我们不能牺牲数据中心在不同位置的往返写入时间。 相反,我想知道是否可以用MySQL复制来做到这一点。 我的想法是这样设置:

3节点主Percona集群 – > MySQL副本DB – > 3个节点Secondary Percona集群

虽然我意识到可能会有一些小的副本滞后,并且数据可能在几秒钟内不同步,但这是我们愿意做出的折衷。 通过这样的设置,我们可以很容易地在开关的翻转处切换群集。

我有几个问题:

  1. 这是一个坏主意吗? 我个人在这里看不到什么重大的缺点,但是我错过了什么?
  2. 是否有可能从一个MySQL从属副本既接收数据(从主Percona集群)和写入数据(到次Percona集群)?
  3. 如果主Percona集群发生故障,我们开始使用/写入Secondary Percona集群,会发生什么? 当主Percona集群返回时,我们如何才能轻松地将其与Secondary Percona集群中的新数据同步? 我们可以简单地(暂时)制作一个6节点的集群,而Percona会做这个工作吗?

我知道很多问题,但非常感谢您的帮助!

集群 – > MySQL – >集群工作。 虽然我还没有尝试过,但是我自己,我知道Cluster-> Cluster是几个月前的一个Soon™选项,所以你可以跳过中间步骤。 从PXC的PoV,你奴役你的机器之一,其他机器奴役你自己; 如果您正在接收数据并且允许从您那里接收数据,那么您就不那么“接收数据和写入数据”,如果这种区别有意义的话。

要重新同步,只需在每个集群上手动调整auto_increment_incrementauto_increment_offset就可以像master-master一样设置。 可能很简单,但最糟糕的是,这意味着限制PXCselect的auto_increment_ {increment,offset},这将是一个小补丁。

加分:为了获得最大的复制速度,在中间数据库中修改(在会话中sql_log_bin=0 )你的表来使用黑洞引擎。