D eve1opment endTesting金融行业M yS Q L数据库 高可 同uJ口r1_ 用方案的思考 华泰证券股份有限公司管文琦 当前, 家对金融爪1I IT系统有『{王可JfI的要求, 金Ⅲ,7 IlA, "管饥f勾也鼓励金融企业使川开源数据库代替 外 应用服务器 苘J}J数据库MySQL作 主流的开源数 库已陂众多金 融 业呆Jtj然而,MySQL作为・个ff1对轻量级的数槲 , . -1 Jt J方案能 满足会融行、ll,.f1%ll:务连续性要求? R4i 1 , 暇 行、ll,人行 道的MySQL数 库 其高uJ 片{架 构能 “核运Jfj住金融行业?4)=义将就此 开 论、 一¨¨一・ ¨¨一・ ¨¨一・ 、主流的MySQL高可用方案分析 肌 越来遮多的金融 业开始逐步选用MySQL数 槲庳…于金融行业对数据‘敛性的要求1}常高,银行、 图1 MySQL主从复制方案 征券等金融食、l 不能容许服务器右饥等常规故障造成数 槲丢欠 I’ rJ"方案的设’f 是MySQL应JI{的重中之巫. .H前针对MySQL部署主要有以r二种J ’ r用方案 1.主从复制方案 主从复制方案是互联M'77业他川最 泛的应}{J方案 (:{)维护卡}{对容易 虽然这种方案是目前且联H行、Il 的主流方案.fIf是 缺 也 可易见,主机卡u 饥之 数据传输是芹步的. 通过 i等MySQL的某一台上 ̄JLi9教拊复制到其他主 fjL(slaves) 一殳IJ EIL发生灾难,存 数 丢失的可能很显然,每 并重新执行一遍来实 复制过程中 次 机 换到备机 有数据 火I,I{J【JJ 能,这一办案不适 合1tI=接 金融行业人范…推, 个服务 充当主服务器,而一个或多个其它Hf迂务器允 1114务器将更新写入二二进制LI志艾件,并 当从 K务 2.半同步复制高可用方案 …步复制的原 怂:I11as|or等待binlog被JJ坛功 写入刮至少 个slave的rclay log之后才会继续执行 col-nniit,否!J!IJ会出现等待当超过预定的等待时问之 维护艾件的‘个索引以跟踪U志循环 .达些14志可以 录发送到从 务器的更新昕示 MySQL{:从复制方案如l冬l】 本方案主要优点是: (1)搭建灵活,很容易实现一主多从,方便实 渎写分离 (2)对F:,bUL乎无性能影响 后.senti—syncl eplication会波禁川. 换【uJ异步再提交 Semi—sync replication 一定 度I 保证提交的事务 少有一个已经传到slave L MySQL半 步复制方案女f1 2所示 2017.06中国金融电脑 85 DEVELOPMENT AND TESTING MySQL集群的优点显而易 ,安全性及稳定性。 , 可以存线增』JI 点,通过这种 C余没汁,MySQL开发 J方声称数据的l r J}1度l】r以达到t)t).000% 然而,这种方案也存在以卜・ 缺点: (1)对主 ̄ILff,J数最有要求 婴求至少三个 点, 并且对于数撕节点要求l太J存完令・敛 (2)索引数掂必须基于IJ、J仔随数据库 增JJIJ. 、t'M少复制是在传统t从复制基础上_.进行了优化, 减少J 数 火 每个数据节点需要添JJIJ更多的l~存,增』JIl使用 本 (3)使川场景有限制..1牺牲部分sql语言特性,管 维护复杂.维护 难 另外.MySQL集群在内地的使用人员很少. 父 、 川少 捌技术的缺点是有较人的性能 失,在某 些 场 I" ̄rA失甚至达到30%~5O%,1:适合对性能要 求较. 内场精减少J 敛 性 适合1,I 需要说II』】的是.半同步复制技术仪仅是 技术社区也不够活跃 由于其缺点较为明显,失,部分场娥下依然存 数抛丢失的叮能 金融行业大规模推J’‘ 综l 昕述.、t'H步技术 性能于iJi失的情 ,依然 二、金融行业适宜采用的高可用解决方案 1.Galera cluster集群 综上所述,MySQL现有卜流的高可 解决办案, 不能确 数 库数据 天火,显然不是最佳的金融行业 ttjf0; ̄、 鬃 3.MySQL集群(NDB cluster) MySQL集群是一flI1分 i式没计,Li标是要达到没 有任fIlJI’『L点敝障点 的I~ 不太适合在金融行业直接大规模推广 我们经过研究, 选川了在闰 卡H对较少使『f{的Galera cluster集群高lIj‘j} 】解决方案一. Galera clustcr集群有如下丰要优点: (1)J叫步复制,主备无延迟 iTlaster宕 ̄0LhY slave 叮以立即顶替许提供服务。 此,任何组成部分 应该拥有自 融 ,如 I:{所 (2)每个节点可以 时读写数据,极大简化J 数 据访 一 (3)自动成员控制,故障竹点自动从策群LIJ移 除 (4)每个节点都包含完整的数据剐本 此方案架构如 4所示. .在实际生产过程中,为了避免三份数据造成浪费. 我们可以采川两个服务器』J口一个总裁节点的模式 、 在我公一J实际生产过程Lf|,Gale z‘a集群运行稳定. 工作日业务期 ,平均承载.{(1【lI1以上的TPS. 线数 图3 MySQL集群(NDB cluster) 据达到T级圳 86 F1NAN(’IAL COMI UTER OF CHINA Developmentand Testing 有得到应用,我们只需要把这部分binlog在备机上重新 运行即可。 2.主从复制的优化方案 Galera cluster的高可用解决方案,也付出一些代价: 节点之间通过网络同步复制数据,造成数据库的处理能 技术特点: (1)在传统主从复制技术基础上优化实现,对主 机理论上没有性能损耗。 (2)经过优化后,能够确保当主机宕机后,备机 数据和主机保持一致。 (3)硬件投入较少。 (4)涉及的所有模块均为开源技术。 力下降,难以满足对数据库性能有较高要求的需求。 在这种背景下,我公司通过投入人力,对传统主从 复制进行了优化,实现发生容灾切换时数据不丢失,同 时数据库的处理能力也不降低。 近年来,随着lnfiniBand网络技术的日趋成熟, lnfiniBand架构具有高吞吐低延时的特点,基于RDMA 经过改进的MySQL主从复制高可用方案可以满足 金融行业对数据一致性的要求。此项技术目前在金融行 的协议使用越来越广泛。RDMA通过网络把资料直接传 业未见类似公开报道。 入汁算机的存储区,将数据从一个系统快速移动到远程 系统存储器中,并且不对操作系统造成任何影响。 利用以上技术特点,基于IB网络对传统MySQL主 三、小结 本文逐一分析了MySQL主流的三种高可用方案, 从复制进行优化,起到了良好的效果。 通过分析可知,主流的MySQL高可用方案不适合直接 以图5作为示例,技术原理如下所述:主机和备机 在金融行业套用。为此,本文提出了两个解决方案, 之『日J依然通过一般的主从复制技术进行容灾保护,同时 使用RDMA协议,将备机的一块磁盘,映射给主机使用。 主机将自身的binlog存放在这块由备机映射过来磁盘上 一个是使用开源的第三方集群Galera,优点是能够满 足金融行业的数据一致性要求,缺点是略有性能损失; 另一个方案是对现有MySQL传统主从复制进行优化, (图5中红圈所示)。当主机发生故障时,我们首先对比 使用开源技术,增加很少的硬件投入,经过改进的 备机通过传统主从复制应用主机的binlog位置和备机映 MySQL主从复制高可用方案可以在满足数据一致性的 射出去的磁盘上的binlog位置。如果所有binlog都已经 同时,确保了数据库处理能力,在金融领域有较好的 被成功应用,说明没有数据丢失;如果有部分binlog没 推广前景。圆 2017.06中国金融电脑 87