MySQL灾备中心建设方案
背景介绍
在当今云网融合大数据时代,数据已成为重要的生产要素,随着棱镜门、永恒之蓝、汶川大地震等大规模数据丢失和泄漏事件的发生,中国相继出台了《中华人民共和国网络安全法》和《数据安全法》等法律法规,对各组织机构的数据安全保护条件进行严格限定。
当数据中心发生未知灾难时,容灾备份能够确保数据不丢失或少丢失,同时保证IT业务系统不间断运行或快速切换恢复,要实现应用的容灾,关键在于通过数据库的实时同步和复制,在A地出现机房故障和问题的时候可以平滑快速地迁移到B地,这种远程数据复制和同步虽然存在一定的延迟,但基本可以满足业务连续性的需求。
灾备基础
1. 容灾的定义
容灾是指当数据中心发生各种未知灾难时,确保数据不丢失或少丢失,同时IT业务系统能够不间断运行或快速切换恢复的过程。
2. 衡量指标
评估一个灾备系统可靠性的两个重要指标是RTO(Recovery Time Objective)和RPO(Recovery Point Objective)。
指标 | 描述 |
RTO | 灾难发生后,从系统宕机导致业务停顿之刻开始,到系统恢复至可以支持业务部门运作,业务恢复运营之时,此两点之间的时间,RTO可简单地描述为企业能容忍的恢复时间。 |
RPO | 灾难发生后,容灾系统能把数据恢复到灾难发生前时间点的数据,它是衡量企业在灾难发生后会丢失多少生产数据的指标,RPO可简单地描述为企业能容忍的最大数据丢失量。 |
3. 容灾等级分类
根据国家标准GB/T 209882007,容灾能力分为六个等级:
等级 | 说明 |
第 1 级 | 基本级,备份介质场外存,安全保障、定期验证。 |
第 2 级 | 备份场地支持,网络和业务处理系统可在预定时间内调配到备份中心。 |
第 3 级 | 电子传输和部分设备支持,灾备中心配备部分业务处理和网络设备,具备部分通讯链路。 |
第 4 级 | 电子传输和完整设备支持,数据定时批量传送,网络/系统始终就绪,温备中心模式。 |
第 5 级 | 实时数据传输及完整设备支持,采用远程复制技术,实现数据实时复制,网络具备自动或集中切换能力,业务处理系统就绪或运行中。 |
第 6 级 | 数据零丢失和远程集群支持,数据实时备份,零丢失,系统/应用远程集群,可自动切换,用户同时接入主备中心。 |
两地三中心容灾
两地三中心能够组合本地高可用,同城灾备中心和异地灾备中心,提高可用性,提升业务连续性,重点业务多采用“两地三中心”(即生产数据中心、同城灾备中心、异地灾备中心)建设方案,这种模式下,多个数据中心是主备关系,针对灾难的响应与切换周期根据异常情况灵活处理,能够实现更优的RTO与RPO整体目标。
MySQL常见的主从形式
MySQL本身自带有主从复制的功能,解决了数据一致性、检查点机制、可靠网络传输等问题,可以帮助我们实现高可用切换和读写分离。
1. 一主一从
一主一从能够提供备库,主库故障后可以进行故障切换,避免数据丢失。
2. 一主多从
一主多从常见的主从架构,使用起来简单有效,不仅可以实现HA,而且还能读写分离,进而提升集群的并发能力。
3. 多主一从
多主一从可以将多个MySQL数据库备份到一台存储性能比较好的服务器上,方便统一分析处理。
4. 双主复制
双主复制,也就是互做主从复制,每个master既是master,又是另外一台服务器的slave,这样任何一方所做的变更,都会通过复制应用到另外一方的数据库中,同一时刻可以只有一个是主,另外一个是备,实例主动维护进行主从切换的时候无需进行特别的配置,秒级切换方便日常升级维护。
5. 级联复制
级联复制模式下,部分slave的数据同步不连接主节点,而是连接从节点,主节点有太多的从节点,就会损耗一部分性能用于replication,这个时候可以让3~5个从节点连接主节点,其它从节点作为二级或者三级与从节点连接,这样不仅可以缓解主节点的压力,并且对数据一致性没有负面影响。
MySQL常见高可用方案优劣
对比目前主流的数据库高可用方案,都有各自的优势和劣势,但在支持异地容灾方面都不够简单易用:
高可用方案 | 优势 | 劣势 |
主从 + Keepalived | 部署简单,没有主实例宕机后选主的问题。 | 一主多从在切换之后,其他从实例需要重新配置连接新主。 |
MHA | 支持一主多从、主服务崩溃时不会导致数据不一致。 | SSH存在安全隐患,官方不再维护。 |
组复制MGR | 无延迟,数据强一致性。 | 强依赖网络,只能用在GTID模式下,大事务和DDL操作有阻塞风险。 |
MySQL InnoDB Cluster | 弥补组复制无法提供具有自动化故障转移功能的中间件。 | 组件多,成熟案例少。 |
Orchestrator | 支持一主多从,解决了管理节点的单点问题,支持命令行和Web界面管理复制。 | 功能复杂,不方便集成进自有系统。 |
MySQL主从初始化消息
通过抓取消息和分析代码,发现MySQL从库和主库建立同步通道过程中,分别进行网络连接建立、授权,实例唯一性、时钟、字符集、binlog配置校验等工作,其中实例唯一性校验过程从库会获取主库的server id。
MySQL binlog日志结构
MySQL的主从复制是基于binlog文件,而binlog文件是由多个binlog event构成,binlog event的整体结构由head+data+footer三部分组成,head包含产生event的数据库实例server id,在主从复制作为区分event是否为自己实例生成的重要依据。
两地三中心MySQL主从方案
两地三中心建设相对容易,日常的演练和数据回流等配置比较繁琐,容易出错,本方案通过机房内建立MySQL主主复制,此时主从切换无需繁琐的命令,只需要设置read_only;同城机房间也是建立主主复制,方便容灾演练回切,无需复杂的配置,同理,与两地三中心。
FAQs
Q1: 什么是RTO和RPO?
A1: RTO(Recovery Time Objective)是指灾难发生后,从系统宕机导致业务停顿之刻开始,到系统恢复至可以支持业务部门运作,业务恢复运营之时,此两点之间的时间,RPO(Recovery Point Objective)是指灾难发生后,容灾系统能把数据恢复到灾难发生前时间点的数据,它是衡量企业在灾难发生后会丢失多少生产数据的指标,RTO可简单地描述为企业能容忍的恢复时间,RPO可简单地描述为企业能容忍的最大数据丢失量。
Q2: 两地三中心容灾方案的优势是什么?
A2: 两地三中心能够组合本地高可用,同城灾备中心和异地灾备中心,提高可用性,提升业务连续性,这种模式下,多个数据中心是主备关系,针对灾难的响应与切换周期根据异常情况灵活处理,能够实现更优的RTO与RPO整体目标。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1103501.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复