262021.11

数据技术嘉年华 • ONLINE 万里数据库带你get MySQL整个高可用发展史

2021.11.26

11月26日下午2点,数据技术嘉年华 • ON LINE第四期如期而至。万里数据库开源生态负责人叶金荣老师受邀发表《MySQ高可用演进及实践》主题演讲,与人大金仓、南大通用、中兴、云和恩墨等业内知名的国产数据库技术专家同台论道,畅谈数据库领域的技术成果与应用实践。


数据技术嘉年华 • ONLINE 万里数据库带你get MySQL整个高可用发展史

图 | 数据技术嘉年华 • ON LINE第四期

数次跃升迭代 MySQL高可用发展史悉数呈现

叶老师表示,数据库的高可用主要面临两方面挑战:一是如何提升RPO数据一致性,即在做高可用切换的时候,如何尽可能地保证不丢数据或少丢数据;二是如何保障服务连续性,提高RTO指标。换句话说,在发生主从切换过程中,如何降低服务不可用的时间。


纵观整个MySQL发展史,高可用的发展大致可分为4个阶段:

一、远古阶段:原始主从复制架构

基本是MySQL5.5之前的版本,当时主要是基于异步复制的解决方案。在互联网发展早期阶段,绝大多数是高可用+读写分离方案,常见的架构方案一般是一主一从或一主多从。

这个阶段不仅存在异步复制的问题,主从复制一定会存在延迟。并且,数据的一致性无法保障,没有高可用的切换机制,需要通过自行写脚本等方式实现。此外,从节点的单线程,⼤事务、⽆主键等问题也容易造成复制延迟,可读性较差


二、古代阶段:MHA组件/工具

这个阶段,出现了MHA这样的工具,可以利用MHA配合异步复制,实现对整个主从复制架构的高可用管理。当出现意外时,会把某个从节点提升成新的主节点,然后MHA会在切换前尝试数据补录,之后再完成主从切换,尽可能地实现RPO=0,降低RTO,基本上可以保障99.99%的可用性,数据丢失最少。

这个阶段存在的问题是对5.7版本后的并⾏复制⽀持不好,基本上是废弃状态,需要自行开发切换脚本,并且需要构建ssh信任,存在一定的安全隐患。此外,项目已经处于不更新的状态,目前不太建议再用MHA解决方案了。


三、近代阶段:半同步复制工具

MySQL5.6版本以后,引入了GTID、binlog server、半同步复制等特性,尤其引入了新选项
slave-rows-search-algorithms
,对⽆主键的表⽀持更友好。并且还引⼊了增强半同步,通过半同步线程独⽴减少瓶颈点,主库group commit和从库writeset提⾼效率,设置最少多少个从库ack提⾼可靠性这些措施机制,配合ProxySQL、Orchestrator等⼯具,基本上可以保障99.9%的可⽤性。

这个阶段存在的问题是半同步复制存在幻读问题,并且ack确认在dump thread中,很容易造成瓶颈。半同步复制也可能会退化成一个异步复制,特殊情况下会造成主从数据不一致。


四、现代阶段:MGR

MGR是MySQL官⽅推出的新⼀代原⽣⾼可⽤⽅案,可以很好地保障数据一致性,并且出现故障会自动转移,无需人工干预。MySQL InnoDB Cluster,简称MIC,包括MySQL Server、Shell、Router等组件,MySQL Shell包含丰富的接口、指令集,MySQL Router则⾃带读写分离及MGR状态感知,基本上可以保障99.99%的可用性。


作为研究MySQL十多年的技术专家,叶老师针对上述的高可用方案给出了如下建议:

  • 针对一般业务,即不要求高一致性和高可靠性,以只读为主的业务场景,选择异步复制、半同步复制和MGR三种方案都可以,但是建议使用MySQL5.7以上的版本

  • 针对重要业务,即对数据一致性、高可用保障都有较高要求的业务场景,可选择半同步复制或MGR高可用方案,建议使用MySQL8.0以上的版本

  • 针对核心业务,即对数据一致性、高可用保障要求极高的业务场景,强烈建议使用MGR,且建议至少用8.0以上版本,然后采用多IDC和数据多副本的架构方案,配合MySQL Shell、Router原⽣⽅案。


数据技术嘉年华 • ONLINE 万里数据库带你get MySQL整个高可用发展史

图 | 高可用架构方案选择建议

并且,MGR还有同城跨IDC架构、跨城多IDC架构,可以根据不同的需求进行选择。

最后,不得不提的是万⾥数据库目前正在维护的MySQL分⽀——GreatSQL,尤其适用于金融级应用。它专注于提升MGR的可靠性和性能,并且⽀持InnoDB并⾏查询特性,让CPU资源不再浪费。其拥有的地理标签功能,可以提升多机房架构的数据可靠性;全新的流控机制,让MGR运⾏时更流畅且不频繁抖动。

简单来说,相对官方社区版本,GreatSQL的运⾏更稳定、可靠。感兴趣的小伙伴,可以点击
https://gitee.com/GreatSQL/GreatSQL/releases下载试用。




数据技术嘉年华作为数据库领域的技术盛会,汇聚国产数据库厂商百花齐放。数据库作为信息系统底层的基础软件,技术含量高,工程难度大,在国内历经几十年和数代人的努力发展至今,先辈们为之付出了艰苦卓绝的努力,贡献了卓越的智慧和一定阶段的技术成果。

我们作为数据库技术的继承者,理应在先辈们成果和智慧的基础上,继续努力向前,为把数据库发展为更先进、更易用、更安全、更稳定、更智能、更融合的产品不懈努力奋进。