双Master
双Master是非常常用的高可用拓扑结构。两个Master互相复制数据以保持同步,因为是对称的,所以设置起来非常简单。而双主架构又可细分为Active-Passive模式和Active- Active模式。它们都常常搭配共享存储使用,或者低成本的DRBD技术,可以理解为“网络的RAID”实现。
双主Active-Passive架构
Active-Passive模式的拓扑架构示意图如下:
两台Master彼此互为镜像,并且binlog二进制文件存储在共享磁盘之上。这意味着主Master到备Master的切换速度很快,而且Slave也不需要将binlog的文件和位置进行调整,唯一需要做的便这是CHANGE MASTER了。
在Active-Passive模式的双主架构中,最需要注意的便是脑裂
(split-brain syndrome
)问题了。造成脑裂很有可能是主Master发生故障进入修复期,此时备Master接管服务。不幸的是心跳线或监听服务也发生了故障,那么当主Master完成修复回来时,备Master无法洞悉这一情况,那么将出现两个Master同时运行,那么很有可能出现数据更新的冲突,导致Slave复制出现脏数据。因此,将竭尽全力避免脑裂的发生。值得庆幸的是DRBD内置已经以优雅的方式解决了脑裂split-brain syndrome问题,而共享存储则依赖于该产品自身的处理方式。