MySQL高可用解决方案――从主从复制到InnoDB Cluster架构,MySQL高可用解决方案,从主从复制到InnoDB Cluster架构详解,MySQL高可用解决方案详解,从主从复制到InnoDB Cluster架构过渡之路

马肤

温馨提示:这篇文章已超过405天没有更新,请注意相关的内容是否还可用!

MySQL高可用解决方案涵盖了从主从复制到InnoDB Cluster架构的多种技术。本文主要介绍了这些技术的基本原理和优势。通过主从复制,可以实现数据备份和读取负载均衡;而InnoDB Cluster架构则提供了更高的数据可用性和容错能力,确保在节点故障时数据依然可以访问。本文详细解析了这些技术的工作原理和配置方法,为构建可靠的MySQL系统提供了重要参考。

大家好,我是哪吒。

爱奇艺每天都为亿级用户提供7×24小时不间断的视频服务,为了满足这一需求,我们的平台必须拥有高可用架构,确保用户可以方便地获取海量、优质、高清的视频资源,如果服务出现故障,大量用户将无法正常观看视频,爱奇艺技术产品团队针对使用数据库服务的应用,提供了不同的SLA保障,对于重要的S级应用,我们将RTO(恢复时间目标)控制在分钟级别;对于A级应用,RTO控制在10分钟级别,本文将重点介绍我们在MySQL高可用实现方面的方案。

一、基于MHA(Master High Availability Manager)二次开发的高可用方案

MHA是目前比较成熟及流行的MySQL高可用解决方案,为了进一步提升其性能,我们基于MHA进行了自研,MHA能在30秒内进行故障转移,并最大限度地保障数据的一致性,我们的方案主要针对MHA的一些缺点进行了优化,如使用配置文件管理主备关系、不能重复切换、实例增减需要重启Manager、Manager单点并且不能自动切换等问题。

MySQL高可用解决方案――从主从复制到InnoDB Cluster架构,MySQL高可用解决方案,从主从复制到InnoDB Cluster架构详解,MySQL高可用解决方案详解,从主从复制到InnoDB Cluster架构过渡之路 第1张

二、MySQL HA(High Availability)架构简介

爱奇艺自研的MySQL HA系统由HA Master和HA Agent两部分组成,三个HA Master组成一个最小集群单元,这个单元通过raft协议实现高可用,HA Agent负责故障检测、解析和传输binlog、清理relay log以及MGR(MySQL Group Replication)的高可用,切换模块则负责具体的故障切换,支持自动和手动两种切换方式,除了对主库支持故障切换外,也具备对从库故障切换的能力。

MySQL高可用解决方案――从主从复制到InnoDB Cluster架构,MySQL高可用解决方案,从主从复制到InnoDB Cluster架构详解,MySQL高可用解决方案详解,从主从复制到InnoDB Cluster架构过渡之路 第2张

HA的选主规则

为了确保选主的准确性和高效性,HA需要一套复杂的选主规则,这些规则包括排除坏的从库、选择最新的从库作为候选主库、根据切换策略选择同DC(数据中心)、同region或跨region的slave等,如果没有满足条件的slave,则需要人工干预。

补全diff binlog

在Master切换过程中,可能会存在三种类型的diff binlog,为了确保数据的一致性,需要生成这些diff binlog文件,并顺序应用以恢复从库的数据,如果是使用gtid复制,需要先应用这些文件恢复数据后再进行其他操作;如果是非gtid复制,则需要先改变主库到最新的slave再恢复数据并应用未发送的diff binlog文件完成binlog补齐。

MySQL高可用解决方案――从主从复制到InnoDB Cluster架构,MySQL高可用解决方案,从主从复制到InnoDB Cluster架构详解,MySQL高可用解决方案详解,从主从复制到InnoDB Cluster架构过渡之路 第3张

数据一致性保障及其他措施

我们结合多种内部系统如监控系统、资产管理系统、CMDB、链路追踪以及混沌工程平台,开发了一个面向业务的应用运维平台,该平台提供一站式服务,包括拨测、巡检、资源使用分析、调用链路追踪以及故障演练等功能,以提升应用的可用性和安全性,我们还通过其他措施如半同步复制和MGR来保障数据的一致性。

六、《MySQL高可用解决方案——从主从复制到InnoDB Cluster架构》购书指南

MySQL高可用解决方案――从主从复制到InnoDB Cluster架构,MySQL高可用解决方案,从主从复制到InnoDB Cluster架构详解,MySQL高可用解决方案详解,从主从复制到InnoDB Cluster架构过渡之路 第4张

作者徐轶韬是甲骨文公司MySQL解决方案首席工程师,他为中国金融、政府、航空运输等行业的MySQL用户提供相关产品的售前咨询、企业级产品介绍、解决方案服务以及推广和普及MySQL数据库在社区的使用,他还负责运营公众号“MySQL解决方案工程师”,并推出开源社区活动及社区贡献荣誉,本书详细介绍了MySQL的官方高可用解决方案,包括MySQL主从复制、MySQL ReplicaSet组复制、InnoDB Cluster及InnoDB ClusterSet等相关内容,还介绍了MySQL 8.0的部分内容,如文档存储、MySQL Shell及MySQL Router等,通过本书,读者可以全面了解MySQL的生态和工具,并将这些解决方案灵活运用到实际生产中。


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码