容灾最佳实践
容灾实现原理
容灾实现原理说明:
- 主集群与灾备集群之间日志传输通过流式全量/增量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
主集群与灾备集群数据连通性检测。
搭建容灾关系
- 登录管理控制台。
- 在页面左上角单击
,选择,进入云数据库 GaussDB信息页面。 - 单击管理控制台左上角的
,选择主实例所在区域。 - 在“实例管理”页面,单击主实例名称进入“基本信息”页,在“网络信息”模块的“子网”处,获取主实例的子网段信息。
图2 主实例子网段信息
- 单击管理控制台左上角的
,选择灾备实例所在区域。 - 在“实例管理”页面,单击灾备实例名称进入“基本信息”页,在“配置信息”模块的“容灾IP”处获取灾备实例的“容灾IP”,在“网络信息”模块的“子网”处,获取灾备实例的子网段信息。
图3 灾备实例容灾IP和子网段信息
- 在灾备实例“基本信息”页,“配置信息”模块的“容灾IP”处,单击“重置配置”,填写4中获取到的主实例的子网段信息,单击“确定”。
- 在主实例“基本信息”页,“配置信息”模块的“容灾IP”处,单击“重置配置”,填写6中获取到的灾备实例的子网段信息,单击“确定”。
- 在主实例所在控制台,单击左侧导航栏的“容灾管理”,在页面右上方单击“搭建容灾关系”。
- 填写相关参数,勾选确认信息。
表4 灾备参数 参数
说明
灾备类型
灾备的方式。
当前仅支持流式容灾。
主实例
需要容灾的实例,即容灾主实例。
灾备实例容灾IP
容灾IP可以从灾备实例的基本信息页获取,参考6。
灾备实例管理员账户名
容灾账户,该账户主要用于容灾过程中主集群和灾备集群鉴权,账户名称默认为灾备集群的root。
灾备实例管理员账户密码
设置灾备集群实例管理员账号名的密码。
- 单击“确定”开始搭建容灾关系,可在“容灾管理”页面查看任务状态,当任务状态显示为“正常”时,表示容灾关系搭建成功。