同城双活解决方案

最近更新时间: 2024-06-12 15:06:00

云数据库 MySQL/MariaDB 目前已经支持同城双中心双活能力,但该能力取决于实际硬件、网络的部署,因此实际支持情况请咨询工作人员。现就云数据库MySQL/MariaDB实际能力说明如下:

  • 同城双中心部署
  • 双中心可写:如果您的服务器部署在两中心不同子网中,可分别从两中心各自的服务器连接数据库写入数据
  • 故障自动转移/恢复
  • 双中心唯一访问 IP

然而,仅是数据库同城双中心双活并不能实现业务系统级的容灾;事实上,单一系统/模块切换到同城灾备中心容易,但企业级系统业务内部复杂的关联、配置都是双中心面临的难题。

因此,构建双活业务系统,需要业务在系统的设计、使用、管理、系统升级过程中时刻都以双中心为基础,双中心实时使用,配置互通为基础,这样才能做到故障后,业务不修改或较少修改,即可快速恢复运行。这也是,云数据库 MySQL/MariaDB 同城双中心双活设计的目标,让两个中心的业务系统都能通过本地网络,完全正常读写数据库系统,且能够保证数据库强一致性。

设计标准

云数据库 MySQL/MariaDB 双活的设计标准参考《GB/T 20988-2007 信息安全技术 信息系统灾难恢复规范》,由于是数据库单一模块:

  • 实际RTO ≤ 60秒
  • 实际RPO ≤ 0秒

其中对于RTO的时间:

  • 故障检测时间 ≤ 30秒
  • 数据一致性校验≤10秒
  • 故障切换时间 ≤ 1秒

这意味着,含故障检测时间从故障发生到完全切换完成约需40秒。

风险提示:真实环境测试下,需确保业务系统具有自动重连数据库机制;然而业务系统往往存在多个模块,每个模块可能与多个数据源相关,因此越是复杂系统恢复时间越长。

支持情况

详细内容,请联系工作人员。

价格说明

详细内容,请联系工作人员。

主从切换

如果您要将主节点从某一可用区切换到另一可用区,您可以直接单击主从切换即可。主从切换是高危操作,需求验证登录帐号的 IP 地址;切换过程可能导致数据库连接闪断(≤1s),请保证业务有数据库重连机制;频繁切换将可能业务系统异常甚至数据异常。

技术原理简介

基于 MySQL/MariaDB 高可用的主从架构和 VPC 可用区虚拟 IP 漂移特性的有机整合,实现了双中心同时读写,架构特点如下:

  • MySQL/MariaDB 每一个 DB 节点前端,混合部署 Proxy 模块;Proxy 模块负责将数据请求路由到对应的 DB 节点。
  • 在 Proxy 模块前部署跨地域 VPC 网关,并支持虚拟 IP 漂移功能。
    如上图,以写入数据为例,假设业务服务器部署在 A 可用区,PC 网关转发数据请求到 A 可用区的 Proxy 网关,再由 Proxy 做透明转发到 Master 节点。而假设业务服务器部署在 B 可用区,VPC 网关转发数据请求到 B 可用区的 Proxy 网关,再由 Proxy 做透明转发(通过云 BGP 专网)到 Master 节点。 无论是读请求还是写请求,整个过程对业务透明。如果是数据库异常,数据库集群则按如下原则处理:
  1. 若 Master 与 Proxy 故障,集群自动选举最优 slave 提升为新 Master,系统通知 VPC 修改虚 IP 与物理 IP 关联关系,业务仅感知部分写连接中断。
  2. 若 Master 故障,但 Proxy 正常,集群自动选举最优 slave 提升为新 Master,Proxy 将阻塞请求,直到主从切换完成;此时,业务仅感知到部分请求超时。
  3. 若 Slave 故障(无论 Proxy 的是否故障),读写分离情况下,根据预先配置的只读账号只读策略(有3种)执行。
  4. 若 A 可用区完全故障,VPC、数据库在 B 可用区仍然存活,此时,slave2 节点自动提升为Master 后,根据强同步策略调整该节点读写策略,VPC 网络 IP 漂移到 B 可用区;此时集群将重试恢复 A 可用区节点,如果超过30分钟无法恢复,将自动在 B 节点重建至少1个 Slave 节点。由于有 IP 漂移策略,业务不需要修改数据库配置。
  5. 假设 B 机房完全故障,MariaDB 集群相当于故障了 Slave 节点,处理方法与第3.相同。

FAQ

1.相对于同单中心,同城双中心是否会导致性能下降?

在基于强同步复制方案下,由于跨中心延迟会略大于同机房内设备,因此 SQL 响应会有理论下降5%左右。

2.是否存在 Master 节点从主可用区切换到从可用区?

会的,如果不影响您的业务使用,可不用管它。如果您担心影响,可在业务低谷期,通过控制台主从切换功能,切换回去。

3.如何知道数据库集群做了主从切换?

请到 云监控控制台 告警策略 > 云数据库MySQL/MariaDB > 配置主从切换告警。

4.如果一部分的读写请求读写到从可用区,因为网络延迟原因导致性能下降,但又不想放弃同城双中心这个特性怎么办?

您可以 提交工单 说明实例 ID 和您服务器在可用区部署方案,以及读写请求比例,可由云 DBA 帮您调整双可用区负载机制,让从可用区的承担的读写请求尽量少些。