前言
“全面上云的拐点到了!”7月25日,阿里云智能总裁张建锋在2019阿里云上海峰会上做出了明确回答。张建锋表示,今年是云产业一个非常重要的拐点。云上服务与数据库服务成为各类云服务厂商争夺的市场,数据库“高可用“俨然已成为云原生数据库产品的标配,但还未上云的存量数据库该何去何从?
阿里云智能总裁张建峰在2019阿里云上海峰会
方案背景
互联网兴起,银行、医疗、政府行业也步入了智能时代。线上预约挂号、结算、出单为患者带来了极大的便利,减少了排队时间,提升了医院工作效率。通过智慧医疗体系,提供就医便利的同时,也可以帮助医院更好的监控内部的信息和患者信息,让患者通过互联网络技术,获得更好的就医体验。
当然,完成医院便利的同时,也带来了一系列后台系统的维稳的高要求。每一次故障,都会对医院造成极大影响,处理不及时就会升级成严重社会事件。所以智慧医疗体系对系统稳定性有极高的要求。
尤其对于数据库系统来说,要做到同城双机房高可用容灾。为了更好的让医院系统稳定运行,云掣科技数据库团队打造了数据库高可用集群解决方案,在云上数据库与自建数据库复杂情境下为智慧医疗保驾护航。
方案内容
基于医疗本身业务实际请求情况,云掣科技数据库团队选择成熟稳健的“MHA+ProxySQL+Keepalived”高可用架构来实现,提高效率的同时降低运维的成本。
基础环境:同城双机房使用千兆光纤物理专线连接,确保连接质量和速度。通过专线组成一个大的局域网,既降低了环境复杂度,又能避免公网传输的安全问题。
ProxySQL:一个高性能的MySQL代理软件。拥有诸多功能,连接池、主备自动识别、读写分离、故障转移、查询改写和分片等。此架构使用ProxySQL实现请求读写分离,提高数据库读性能。
Keepalived:一款简单强大的高可用组件。为ProxySQL提供高可用支持,Master-Backup架构,在主节点故障时,请求流量切到ProxySQL备节点响应,可做到秒级切换。应用配合实现闪断重连机制,可实现故障无感转移。
MHA:一套成熟的MySQL数据库高可用管理软件。采用Manager-Node架构,实现数据库故障自动转移、智能选主、日志自动回补功能。故障切换可在30秒内完成。
方案部署拓扑图
主机房A部署两个ProxySQL+Keepalived节点,当ProxySQL主节点发生故障,优先选择同机房ProxySQL备节点提升为主节点,确保服务器级故障转移限制在同机房内。
ProxySQL后端挂载3个数据库实例,处理数据读写请求。此3个主备实例使用MHA进行管理,当主实例故障时,选择合适的Slave提升为新主实例提供读写能力,并重建复制关系。ProxySQL会自动识别新的主实例,并进行流量分发。
Backup实例使用级联复制,隔离于业务系统之外,提供日常报表查询及数据库备份服务。
当主机房A瘫痪,所有功能模块会全部转移到容灾机房B,继续对外提供服务。
Tips
使用MHA建议关闭MySQL自动清理relay log功能,使用MHA推荐的清理方法。
参考:https://github.com/yoshinorim/mha4mysql-manager/wiki/Requirements#preserve-relay-logs-and-purge-regularly
方案效果
本方案在实践中稳定运行超一年时间,期间出现过服务器故障,1分钟内完成故障转移。保障了业务的稳定运行,并且前端用户无感知,提升了整体的使用感受。
编后:
数据库在整个系统中属于比较脆弱的一环,虽然可以做到高可用,但使用不当、性能问题同样会造成严重的后果,需要有专业的DBA持续运维。云掣科技完善的运维方案,包括数据库运维、分布式改造、云上Oracle RAC等,协助客户提高数据库稳定性。
图为云掣科技数据库服务介绍
云掣数据库统一管控平台EasyDB,并配有专业的数据库运维团队方案,可以更好的对数据库进行监控,降低运维成本,提高效率,保障业务稳定进行。
图为数据库监控平台使用界面