GaussDB关键技术原理|高可用:两地三中心跨Region容灾

接上篇GaussDB关键技术原理|高可用:逻辑复制从逻辑复制方面对GaussDB的高可用能力进行了介绍,本篇将从两地三中心跨Region容灾方面继续解读GaussDB高可用技术。

目录

4 两地三中心跨Region容灾

4.1 概述

4.2 异地容灾部署示例

集中式

分布式:

4.3 总体设计

集中式部署场景:

分布式部署场景:

4.4 容灾搭建

容灾搭建总体流程

容灾集群流式日志复制的高可用

CN支持流复制机制

灾备集群的CN个数和主集群CN个数不对等场景下建立容灾关系

容灾过程中灾备故障CN的处理

异地容灾集群间日志传输需要支持日志压缩

集中式场景流控逻辑

周期性全局一致性打点与推进

详细设计

灾备集群CN不同状态参与barrier推进的情况


4 两地三中心跨Region容灾

4.1 概述

两地三中心,顾名思义,两地指的是两座城市,即同城和异地,三中心指的是生产中心,同城容灾中心以及异地容灾中心。近年来,国内外频繁出现自然灾害,以同城双中心加异地灾备中心的“两地三中心”的灾备模式也随之出现,这一方案兼具高可用性和灾难备份的能力。

同城双中心是指在同城或邻近城市建立两个可独立承担关键系统运行的数据中心,双中心具备基本等同的业务处理能力并通过高速链路实时同步数据,日常情况下可同时分担业务及管理系统的运行,并可切换运行;灾难情况下可在基本不丢失数据的情况下进行灾备应急切换,保持业务连续运行。

异地灾备中心是指在异地的城市建立一个备份的灾备中心,用于双中心的数据备份,当双中心出现自然灾害等原因而发生故障时,异地灾备中心可以用备份数据进行业务的恢复。数据库实例之间借助存储介质或者不借助存储介质直接实现数据的全量和增量同步。当主数据库实例(即生产数据库实例)出现地域性故障,数据完全无法恢复时,可考虑启用将灾备数据库实例升主,以接管业务。

GaussDB当前提供基于流式复制的异地容灾解决方案。目前需要通过om_agent的https REST API来操控数据库实例实现异地容灾。

图片

4.2 异地容灾部署示例

集中式

图片

图片

主集群是同城跨AZ的单集群,5台服务器,4副本,CMS-4副本,ETCD-5副本。Server5可以看做是仲裁副本,为上海2机房脑裂时,提供仲裁能力。

分布式:

图片

分布式示例

主集群是同城跨AZ的单集群,33台服务器,32C32D-4副本,GTM-4副本,CMS-4副本,ETCD-5副本。server33可以看做是仲裁副本,为北京2机房脑裂时,提供仲裁能力。

容灾集群为16台服务器,16C32D-2副本,需要开启最大可用模式,1个副本故障时任何对外提供服务,GTM-4副本,CMS-4副本,ETCD-3副本。由于机器数量有限,需要支持单服务器上部署2个主DN的部署方式。特别说明:图中展示的是合肥地域集群为正常集群时的组网,该集群成为灾备集群后,不会再有主DN,变为首备与级联备。

4.3 总体设计

集中式部署场景:

主实例和灾备实例副本数可不同,灾备集群最少为1副本。

图片

图 两地三中心异地容灾方案集中式部署场景

分布式部署场景:

支持灾备集群的CN个数和主集群CN个数不对等。

主集群和灾备集群DN分片数要求相同,DN分片内副本数可不同,灾备集群最少为1副本。

图片

图 两地三中心异地容灾方案分布式部署场景

容灾方案提供如下操作流程:

  • 容灾搭建:两个正常集群成为容灾状态下的主集群和灾备集群。

图片

图 两地三中心异地容灾方案集中式部署容灾搭建集群变化

1. 主备集群副本数可不同。

2. 灾备集群有首备+级联备概念,只有首备从主集群主DN拷贝全量数据并建立异地流式复制关系。

3. 灾备集群内级联备从首备拷贝数据,并与首备建立流式复制关系。

  • 灾备集群升主failover:无论主集群是否异常,灾备集群都可以通过升主成为正常集群对外提供服务,并脱离容灾。

  • 演练特性-主备集群switchover:主备集群在都是正常的情况下进行倒换,主集群降为备机,备机升为主机。

图片

图 两地三中心异地容灾方案集中式部署failover与switchover集群变化

  • 主集群容灾解除:用于在灾备集群升主后,主集群删除容灾信息,脱离容灾。

  • 容灾状态查询:容灾状态日常监测,上报集群容灾状态、容灾搭建进度、failover进度、switchover进度,集群RTO,RPO实时数值。

上报项 含义

hadr_cluster_stat (主备集群都可查到)

参与容灾的集群状态

hadr_establish_stat

容灾搭建过程中主备集群搭建进度查询,显示进度百分比。

hadr_failover_stat (备集群可查到)

灾备集群升主过程进度,hadr_cluster_stat = promote时hadr_failover_stat中的值有效,显示进度百分比。

hadr_switchover_stat (主备集群都可查到)

计划内switchover过程进度,hadr_cluster_stat = switchover时hadr_switchover_stat中的值有效,显示进度百分比。

RTO(主集群可查到)

集群容灾RTO(所有分片的最大值)

RPO(主集群可查到)

集群容灾RPO(所有分片的最大值)

容灾状态下支持如下功能:

  • 流控:通过GUC参数设置目标值,对主集群的日志产生速度进行控制,以保证RPO,RTO。

  • 压缩:主备集群间日志传输可打开压缩,节约带宽,压缩比70%。

4.4 容灾搭建

### 数据库双活关键技术实现方案 #### 1. 高可用架构设计 高可用架构是双活的基础,通过在多个地理区域部署相同的应用和服务实例来确保系统的持续运行。这种架构不仅提高了系统的可靠性,还增强了应对突发情况的能力[^2]。 ```python # Python伪代码展示如何配置负载均衡器以支持地区流量分配 def configure_load_balancer(): regions = ['region_a', 'region_b'] for region in regions: setup_slb(region=region, health_check=True) ``` #### 2. 同步复制机制 为了保持两地数据中心的数据一致性,采用实时或近似实时的数据同步技术至关重要。这通常涉及到主从数据库间的日志传输和应用,以及可能存在的冲突解决策略[^4]。 #### 3. 自动化故障转移流程 当检测到主要站点发生故障时,自动化系统能够迅速切换至备用站点继续提供服务而无需人工干预。此过程中涉及网络路径调整、IP地址重映射等工作。 #### 4. 测试与演练计划 定期执行难恢复测试可以验证现有措施的有效性并发现潜在问题所在。这些活动应尽可能模拟真实场景下的各种挑战,从而提高实际事故发生时的成功率[^1]。 #### 5. 用户透明度维护 即使是在切换期间也要尽力减少对终端用户的干扰程度;比如利用全局DNS解析时间较短的特点快速指向新的活跃节点,或是借助CDN缓存加速页面加载速度等手段优化用户体验。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gauss松鼠会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值