暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
MySQL · 引擎特性 · Group Replication内核解析-云栖社区-阿里云.pdf
112
7页
2次
2024-01-02
免费下载
2019/9/23 MySQL · 引擎特性 · Group Replication内核解析-云栖社区-阿里云
https://yq.aliyun.com/articles/175055?spm=a2c4e.11153940.0.0.4fff59bdKV475Q 1/7
MySQL · 引擎特性 · Group Replication内核解析-云栖社区-
阿里云
背景
为了创建高可用数据库系统,传统的实现方式是创建一个或多个备用的数据库实例,原有的数据库实例通常称
为主库master,其它备用的数据库实例称为备库或从库slave。当master故障无法正常工作后,slave就会接替
其工作,保证整个数据库系统不会对外中断服务。master与slaver的切换不管是主动的还是被动的都需要外部
干预才能进行,这与数据库内核本身是按照单机来设计的理念悉悉相关,并且数据库系统本身也没有提供管理
多个实例的能力,当slave数目不断增多时,这对数据库管理员来说就是一个巨大的负担。
MySQL的传统主从复制机制
MySQL传统的高可用解决方案是通过binlog复制来搭建主从或一主多从的数据库集群。主从之间的复制模式支
持异步模式(async replication)和半同步模式(semi-sync replication)。无论哪种模式下,都是主库master提供
读写事务的能力,而slave只能提供只读事务的能力。在master上执行的更新事务通过binlog复制的方式传送给
slave,slave收到后将事务先写入relay log,然后重放事务,即在slave上重新执行一次事务,从而达到主从机
事务一致的效果。
上图是异步复制(Async replication)的示意图,在master将事务写入binlog后,将新写入的binlog事务日志传送
给slave节点,但并不等待传送的结果,就会在存储引擎中提交事务。
2019/9/23 MySQL · 引擎特性 · Group Replication内核解析-云栖社区-阿里云
https://yq.aliyun.com/articles/175055?spm=a2c4e.11153940.0.0.4fff59bdKV475Q 2/7
上图是半同步复制(Semi-sync replication)的示意图,在master将事务写入binlog后,将新写入的binlog事务
日志传送给slave节点,但需要等待slave返回传送的结果;slave收到binlog事务后,将其写入relay log中,然
后向master返回传送成功ACK;master收到ACK后,再在存储引擎中提交事务。
MySQL基于两种复制模式都可以搭建高可用数据库集群,也能满足大部分高可用系统的要求,但在对事务一致
性要求很高的系统中,还是存在一些不足,主要的不足就是主从之间的事务不能保证时刻完全一致。
基于异步复制的高可用方案存在主从不一致乃至丢失事务的风险,原因在于当master将事务写入binlog,然
后复制给slave后并不等待slave回复即进行提交,若slave因网络延迟或其它问题尚未收到binlog日志,而此
时master故障,应用切换到slave时,本来在master上已经提交的事务就会丢失,因其尚未传送到slave,从
而导致主从之间事务不一致。
基于semi-sync复制的高可用方案也存在主备不一致的风险,原因在于当master将事务写入binlog,尚未传
送给slave时master故障,此时应用切换到slave,虽然此时slave的事务与master故障前是一致的,但当主
机恢复后,因最后的事务已经写入到binlog,所以在master上会恢复成已提交状态,从而导致主从之间的事
务不一致。
Group Replication应运而生
为了应对事务一致性要求很高的系统对高可用数据库系统的要求,并且增强高可用集群的自管理能力,避免节
点故障后的failover需要人工干预或其它辅助工具干预,MySQL5.7新引入了Group Replication,用于搭建更
高事务一致性的高可用数据库集群系统。基于Group Replication搭建的系统,不仅可以自动进行failover,而
且同时保证系统中多个节点之间的事务一致性,避免因节点故障或网络问题而导致的节点间事务不一致。此外
还提供了节点管理的能力,真正将整个集群做为一个整体对外提供服务。
Group Replication的实现原理
Group Replication由至少3个或更多个节点共同组成一个数据库集群,事务的提交必须经过半数以上节点同意
方可提交,在集群中每个节点上都维护一个数据库状态机,保证节点间事务的一致性。Group Replication基于
分布式一致性算法Paxos实现,允许部分节点故障,只要保证半数以上节点存活,就不影响对外提供数据库服
务,是一个真正可用的高可用数据库集群技术。
Group Replication支持两种模式,单主模式和多主模式。在同一个group内,不允许两种模式同时存在,并且
若要切换到不同模式,必须修改配置后重新启动集群。
在单主模式下,只有一个节点可以对外提供读写事务的服务,而其它所有节点只能提供只读事务的服务,这也
是官方推荐的Group Replication复制模式。单主模式的集群如下图所示:
of 7
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜