我一直负责创build一个发展的mysql实例,我们目前有一个7节点的Xtradb集群,有没有办法让这个节点落后几个小时,或者不允许复制回集群的其余部分? 我会喜欢它从其他节点更新,但不允许复制回来。
我担心有人丢下桌子,或者不那么纯洁的东西,把集群放下。
任何想法将不胜感激!
只要你的开发服务器连接使用正常的复制,而不是join群集。 标准复制是一种方法(除非你在双方都设置)。 你的开发者服务器会从它所属的主机中取出二进制日志。 这就是开发实例和你的集群之间的所有通信。
我不认为有一个简单的方法可以用一个实际上是集群一部分的节点来做到这一点。 整个集群的重点是不要使数据不同步。
如果你的思想是通过复制延迟来实现的,那么看看pt-slave-delay,如果你运行的是5.5或更低。 如果你使用5.6,那么这个function就已经内置了 。
我会这样做的方式根本不涉及复制。 你应该采取适当的备份(我是Percona Xtrabackup的粉丝),那么你可以简单地将备份恢复到你的开发实例。 做你想做的,然后再恢复。
通过复制来做它会导致更多的错误,而不是你可能想要处理的。 如果有人在开发主机上执行了一个drop table,那么下次主群集尝试更新该文件时,复制就会中断。 你必须手动去重新启动它(或运行一个脚本来为你做 )。