我的任务是创建一个开发 mysql 实例,我们目前有一个 7 节点 Xtradb 集群,有没有办法让这个节点落后几个小时,或者不允许复制回集群的其余部分?我希望它从其他节点更新,但不允许复制回来。
我担心有人会摔倒桌子,或者做不那么纯粹的事情,从而导致集群崩溃。
任何想法都将不胜感激!
答案1
只需让您的开发服务器使用常规复制进行连接,而不是加入集群。标准复制是一种方式(除非您在两侧都进行了设置)。您的开发服务器将从其从属的主服务器提取 binlog。这就是开发实例和集群之间发生的所有通信。
我认为没有简单的方法可以通过集群中的节点来实现这一点。集群的重点是确保数据同步。
如果你打算通过复制延迟来实现这一点,请查看pt-从属延迟如果你运行的是 5.5 或更低版本。如果你运行的是 5.6 版本,那么功能已经内置。
我这样做的方式根本不涉及复制。你应该进行适当的备份(我是Percona Xtrabackup),然后您可以简单地将该备份还原到您的开发实例。 做任何您想做的事情,然后再次恢复它。
通过复制执行此操作会导致比您想要处理的错误更多的错误。如果有人在开发主机上删除表,则下次主集群尝试更新该文件时,复制就会中断。您必须手动进入以重新启动它(或运行为你完成此操作的脚本)。