MySQL双主架构介绍

一、背景

MySQL 主从模式优点

  • 容灾:主数据库宕机后,启动从数据库,用于故障切换
  • 备份:防止数据丢失
  • 读写分离:主数据库可以只负责写操作,而从数据库只用于读取。提高查询效率
    在企业中,数据库高可用一直是业务关注的重点,很多都是使用mysql主从方案,但是单主存在单点故障,从库切换成主库需要作改动。因此,通过双主或多主架构,解决一主多从架构的单点故障,减少主从切换的故障处理时间,增加MySQL群集的高可用性。

主从同步原理可以参考我的上篇博客。这里主要介绍MySQL双主架构。

二、MySQL双主(主主)架构方案

1、主备模式,两台MySQL互为主从,其中一台作为主节点对外提供服务,另外一台作为备用节点(standby),当提供服务的主节点发生故障后,将服务请求快速切换到备用节点,原主节点故障恢复后转换为备用节点(standby)。

2、主主模式,两台MySQL互为主从,且两台MySQL均作为主节点对外提供服务,当其中一台MySQL发生故障后,将指向该故障节点的请求快速切换到另外一台MySQL,原来指向非故障节点的请求不受影响。
为保证应用程序使用相同数据库连接配置而不受故障切换影响,常用方案有:
1、VIP,通过vrrpd或keepalived将VIP动态绑定到新主节点
2、域名,通过切换域名将域名指向新主节点
3、代理,通过更新代理中存放的路由信息来指向新主节点。

三、MySQL双主架构图

在这里插入图片描述
VIP代表域名
说明:当从库IO线程接受到主库传递来的二进制日志(Binlog)并将之保存为从库的中继日志(relay log),然后从库SQL线程将中继日志(relay log)的事件重做到从库上,实现主从数据同步。
如果SQL线程发现该事件的server_id与当前从库的server_id相同,则会丢弃该事件,因此如果两台MySQL如何互为主从,不会导致相同的事件被重复执行。

四、MySQL双主架构的优缺点

优点:

  1. 主主模式能将读写请求分摊到两个主节点,降低数据库服务器的写的压力。
  2. 可以实现数据库服务器的热备,保证高可用。
  3. 当故障节点恢复后,故障节点能通过复制进行数据恢复(应用其他节点数据)和数据同步(将未同步数据发生给其他节点)。

缺点:

  1. 主备模式下可能会出现脑裂情况(即同时有两个数据库提供写的服务)
  2. 主主模式下,很容易因数据访问控制不当导致数据冲突。
  3. 为提高系统高可用性,双主架构会被扩展成双主多从结构,同样存在主节点发生故障后多个从库选主和恢复复制的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值