更新时间:2025-11-11 GMT+08:00
分享

容灾最佳实践

容灾实现原理

容灾实现原理说明:

  • 主集群与灾备集群之间日志传输通过流式全量/增量build的方式复制。
    图1 容灾原理图
  • 初始全量数据的同步:通过对主集群进行全量备份的方式恢复到灾备集群。
  • 增量日志同步:按照全量备份提供的LSN(日志序列号)点,主集群启动归档线程往灾备集群首备(Main Standby)节点的数据盘写入增量数据;灾备集群首备(Main Standby)节点持续从数据盘读取日志,并实时执行回放。
  • 数据一致性:主集群定期创建一致性点(barrier点),灾备集群所有节点按照一致性点控制日志回放进度,从一个一致性点恢复到另一个一致性点。
  • 容灾切换:当主集群宕机后,需要手动启动灾备集群恢复到正常模式,对外提供服务。

约束与限制

  • 分布式实例仅混合部署形态支持容灾,并且需要保证主备实例的节点数量相同。
  • 搭建容灾关系时,灾备实例的存储空间必须大于或等于主实例的存储空间。若主实例的数据超过灾备实例的存储空间,搭建容灾时会因空间无法承载而导致实例异常。
  • 搭建容灾关系的主实例与灾备实例数据库引擎版本必须相同,且需为V2.0-2.0及以上版本。
  • 搭建容灾关系的主实例与灾备实例在创建实例时,“M兼容表名大小写”的配置必须保持一致。“M兼容表名大小写”的默认配置是大小写敏感,如果参数设置不一致,则无法搭建容灾。
  • “副本一致性协议”为“paxos”的实例,仅1主1备1日志形态支持容灾搭建。
  • 在主实例和灾备实例处于Normal状态时可搭建容灾关系。在主实例处于Normal状态并且灾备实例已经升主的情况下,主实例可执行容灾解除,其他实例状态不支持。
  • 灾备实例处于非Normal且非Degraded状态时无法升主,无法作为灾备实例继续提供容灾服务,需要修复或重建灾备实例。
  • 容灾关系搭建后,灾备实例不支持全备、增备和差备,主实例支持全备、增备和差备。如果主实例要恢复到自身,需要先解除容灾关系,在完成恢复后重新搭建容灾关系。
  • 搭建容灾关系的主实例与灾备实例之间不支持参数修改的同步。
  • 容灾主实例恢复到新实例,容灾用户不会自动删除,需要手动删除容灾用户。

前提条件

  • 在两个不同的区域(Region)中分别创建GaussDB实例,一个作为主实例,另一个作为灾备实例。创建实例的步骤请参见购买GaussDB实例
  • 选择新建工单至“云专线”,提交专线开通申请,打通两个Region下的VPC网络。请根据实际实例类型选择相应的放通策略。
    表1 分布式实例防火墙端口放通策略

    源设备

    源端口

    目的端口(侦听)

    协议

    端口说明

    主集群CN与灾备集群CN

    1024~65535

    数据库CN端口号+1,

    默认:8001

    TCP

    基于流式复制的异地容灾解决方案中跨集群的CN实例之间复制的连接端口,灾备集群的CN连接主集群CN。

    灾备集群DN首备与级联备

    1024~65535

    DN端口号+1,

    默认:{40001, 40021, 40041, ..., 40001 + (n-1) * 20}(n表示数据库分片数)

    TCP

    基于流式复制的异地容灾解决方案中灾备集群DN首备和级联备之间复制的连接端口,DN级联备连接DN首备。

    DN主备

    1024~65535

    DN端口号+5

    默认:{40005, 40025, 40045, ..., 40005 + (n-1) * 20}(n表示数据库分片数)

    TCP

    DN主备之间心跳连接请求。

    主集群与灾备集群数据节点

    1024~65535

    12016

    TCP

    主备实例agent通信端口。

    Ping 检查连通性

    /

    /

    ICMP

    主集群与灾备集群数据连通性检测。

    表2 集中式实例(Quorum协议)防火墙端口放通策略

    源设备

    源端口

    目的端口(侦听)

    协议

    端口说明

    灾备集群DN首备与级联备

    1024~65535

    数据库DN端口+1,

    默认:8001

    TCP

    基于流式复制的异地容灾解决方案中灾备集群DN首备和级联备之间复制的连接端口,DN级联备连接DN首备。

    DN主备

    1024~65535

    数据库DN端口+5,

    默认:8005

    TCP

    DN主备之间心跳连接请求。

    主集群与灾备集群数据节点

    1024~65535

    12016

    TCP

    主备实例agent通信端口。

    Ping 检查连通性

    /

    /

    ICMP

    主集群与灾备集群数据连通性检测。

    表3 集中式实例(Paxos协议)防火墙端口放通策略

    源设备

    源端口

    目的端口(侦听)

    协议

    端口说明

    DN主备

    1024~65535

    数据库DN端口+6,

    默认:8006

    TCP

    基于流式复制的异地容灾解决方案中灾备集群DN首备和级联备之间复制的连接端口,DN级联备连接DN首备,DN主备之间心跳连接请求。

    主集群与灾备集群数据节点

    1024~65535

    12016

    TCP

    主备实例agent通信端口。

    Ping 检查连通性

    /

    /

    ICMP

    主集群与灾备集群数据连通性检测。

搭建容灾关系

  1. 登录管理控制台
  2. 在页面左上角单击,选择数据库 > 云数据库 GaussDB,进入云数据库 GaussDB信息页面。
  3. 单击管理控制台左上角的,选择主实例所在区域。
  4. 在“实例管理”页面,单击主实例名称进入“基本信息”页,在“网络信息”模块的“子网”处,获取主实例的子网段信息。

    图2 主实例子网段信息

  5. 单击管理控制台左上角的,选择灾备实例所在区域。
  6. 在“实例管理”页面,单击灾备实例名称进入“基本信息”页,在“配置信息”模块的“容灾IP”处获取灾备实例的“容灾IP”,在“网络信息”模块的“子网”处,获取灾备实例的子网段信息。

    图3 灾备实例容灾IP和子网段信息

  7. 在灾备实例“基本信息”页,“配置信息”模块的“容灾IP”处,单击“重置配置”,填写4中获取到的主实例的子网段信息,单击“确定”。
  8. 在主实例“基本信息”页,“配置信息”模块的“容灾IP”处,单击“重置配置”,填写6中获取到的灾备实例的子网段信息,单击“确定”。
  9. 在主实例所在控制台,单击左侧导航栏的“容灾管理”,在页面右上方单击“搭建容灾关系”。
  10. 填写相关参数,勾选确认信息。

    表4 灾备参数

    参数

    说明

    灾备类型

    灾备的方式。

    当前仅支持流式容灾。

    主实例

    需要容灾的实例,即容灾主实例。

    灾备实例容灾IP

    容灾IP可以从灾备实例的基本信息页获取,参考6

    灾备实例管理员账户名

    容灾账户,该账户主要用于容灾过程中主集群和灾备集群鉴权,账户名称默认为灾备集群的root。

    灾备实例管理员账户密码

    设置灾备集群实例管理员账号名的密码。

  11. 单击“确定”开始搭建容灾关系,可在“容灾管理”页面查看任务状态,当任务状态显示为“正常”时,表示容灾关系搭建成功。

相关文档