同城双活解决方案

最近更新时间:2020-07-16 16:01:27

腾讯云 MariaDB 目前已经支持同城双中心双活能力,主要特性如下:

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

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

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

设计标准

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

  • RTO ≤ 60秒
  • RPO ≤ 5秒
  • 故障切换时间 ≤ 5秒
  • 故障检测时间 ≤ 30秒

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

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

支持情况

已支持情况

实例版本:

  • 标准版:一主一从(双节点)/一主二从(三节点)
  • 金融定制版:一主一从(双节点)/一主二从(三节点)

网络要求:仅 VPC 网络

已支持地域:

  • 北京(北京一区、北京三区)
  • 上海金融(金融一区、金融二区)
  • 深圳金融(金融一区、金融二区)

价格说明

双可用区售价与单可用区相同,详见 价格说明

风险提示:在2019.06.30前免收双中心数据同步专线费用;如后续运营政策变更,价格将不高于当时腾讯云已公开的同城专线费用;如您不希望继续使用同城双中心方案,可免费迁移至同城单中心。

购买与使用

请至 云数据库 MariaDB 购买页 单击购买。

  • 主、从可用区相同时,即单可用区部署。
  • 主、从可用区不同时,即同城双中心部署。
注意:

  • 主可用区即您主服务器所在区域,数据库应尽量分配在于主服务器相同的 VPC 子网内,减少访问延迟。从可用区,数据库从节点所在可用区;如果是一主二从3节点,主可用区将部署2个节点;如果是一主一从2节点,主可用区将部署1个节点。
  • 金融云围拢方案如需支持同城双中心策略,可能需要先建设同城双中心围拢方案,详情请咨询您对应商务、架构师。

实例初始化

请参考 实例初始化 对实例进行初始化。

查看实例可用区详情

您可至 控制台,单击实例名或操作列的【管理】,进入实例详情页查看。

主从切换

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

技术原理简介

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

  • 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.如何知道数据库集群做了主从切换?

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

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

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

5.如果期望从单中心更换为同城双中心架构,应该如何操作?

首先确认您所在区域是否支持同城双中心方案,目前已开放北京、上海金融、深圳金融三个地域;其次,您需要提交工单,说明需要调整的账号信息、实例 ID、计划哪两个可用区、以及建议运维操作时间;最后,腾讯云工作人员会进行审核(已支持双可用区的),审核通过后即可按需操作,否则将驳回该需求。

目录