有些时候,简单地从一个MySQL复制到另一个MySQL的基本Replication架构,可能还会需要在一些特定的场景下进行Master的切换。如在Master端需要进行一些特别的维护操作时,可能需要停止MySQL的服务。这时候,为了尽可能减少应用系统写服务的停机时间,最佳的做法就是将slave节点切换成Master来提供写入的服务。
但是这样一来,原来Master节点的数据就会和实际的数据不一致了。当原Master启动可以正常提供服务的时候,由于数据不一致,不得不通过反转原Master-slave关系,重新搭建Replication环境,并以Master作为slave来对外提供读服务。重新搭建Replication环境会给我们带来很多额外的工作量,如果没有合适的备份,可能还会让Replication的搭建过程非常麻烦。