评论 微博 空间 微信 GBASE南大通用技术分享:如何用GVR可视化工具实现GBase数据库的双活集群容灾(下)

GBase 8a是国内少数具备两地三中心容灾能力的分析型MPP数据库,通过其配备的RsyncTool同步工具可实现同城或异地集群间准实时数据同步,并已在诸多大型银行、保险等金融机构部署实施。本文旨在介绍基于可视化集群双活同步工具GVR(GBase Visual RsyncTool)的GBase 8a集群双活容灾方案,包括GVR双活容灾方案的适用场景、GVR工具功能简介。

04 适用场景

4.1 T+1同步场景
方案描述
T+1异步双活同步适用于同步时效性要求不高,具有较长时间窗口用于数据同步的场景,如作业跑批类场景。每天凌晨进行日作业的跑批加工,完成作业跑批后集群数据处于不再变动的静态状态,此时即可启动集群双活同步完成数据的增量同步。在数据同步期间,主集群上正在同步的表可支持查询和Appendonly类型的DML数据写入,备份集群上正在同步的表不可对外提供服务。

T+1异步同步方式和业务的耦合性较低,通过不同时间段来规避数据同步时的不同表数据间的切片一致性问题。方案架构如下图:

  • 应用加工的跑批作业按照原逻辑在主集群上执行
  • 应用加工作业涉及的修改过的表,加入到待同步任务列表中
  • 作业跑批完成后,触发集群双活同步,或按照时间进行切分,如上午8点完成作业跑批,则上午9点开始进行双活同步
  • 所有待同步表同步完成后,备份集群中的数据与主集群中的数据达到一致状态,完成双活同步,此时备份集群可对外提供数据查询服务

用户也可以按库进行全部表同步或者提供一个较大范围的同步表列表,即提前预置需要同步的库或表,省去第②步的操作。在进行双活同步时,GVR同步工具自动完成表在主备集群间是否一致的判断,对于本次作业周期内未修改的表不再进行同步。

增量同步时间评估

T+1异步双活同步需要在一个固定的时间窗口内完成增量变化数据的同步,需要的时间较长。可以根据变化数据量/网络传输带宽进行所需时间的预估,因为数据库集群双活同步是分片对分片的并行网络传送,并可以设置多个表的并行同步,可以充分利用网络带宽。

对于同步时间窗口不足的场景,可以按照业务特点分批次进行数据同步。如作业跑批的时间窗口为0点8点,其中0点2点为日增数据加载,2点3点为公共数据加工生成,3点5点为汇总层数据加工生成,5点~8点为指标统计。则可以编排同步批次如下:

3点进行ODS层日增入库数据表的双活同步

5点进行公共加工数据表的双活同步

9点进行剩余未同步表的双活同步

灾备指标评估:

T+1异步双活同步方案下的灾备指标取决于重新进行日跑批的耗时。

因为OLAP系统的原始数据来自于外部系统,一般具备业务加工的幂等性,可以通过重新加载和重新跑批加工的方式实现数据的恢复,所以RPO指标为0。对于无法重新跑批计算的数据,其RPO最悲观为上次同步完成时的业务时间到灾难发生时间,即RPO<24小时,针对这类业务可以提高数据同步频次的方式来降低RPO,如每小时同步一次该类型数据将缩短RPO至1小时内。

对于RTO恢复目标,其恢复时间为上一次数据同步完成时间开始,重新跑批的耗时,如重新日跑批需要8个小时,则RTO<8小时。

4.2作业级准实时同步场景

方案描述

作业级准实时同步是将表数据同步任务加入到应用加工的跑批作业调度中,在一个跑批作业任务结束后,执行该作业所涉及表的双活同步。GVR提供用户同步任务调度接口,在跑批作业的最后一步增加一个双活同步任务,待同步任务完成后,该作业执行完成。

该方案下双活同步与业务会进行一定的耦合。通过作业任务调度实现主备集群间数据的及时数据同步,达到降低RPO、RTO的目标。

方案架构图如下:

①修改业务程序脚步,在每个跑批作业的末尾,增加双活同步任务调度

②提前预置或在作业执行时生成要同步的表列表,在作业执行完成后,按照预置的表列表或即时生成的本次作业存在数据变动的表列表进行数据同步

③表同步任务完成后,该跑批作业才正式结束,当出现数据同步任务失败的情况下,作业调度程序需支持同步任务的重跑而无需进行整个作业的重跑

④为降低数据同步对作业跑批性能的影响,最后的同步任务可以异步执行,即完成作业跑批任务后,即可进行后续跑批任务的执行,数据同步异步进行,并最终返回同步结果。

增量数据同步时间评估

作业级准实时数据同步将主备集群间的数据同步任务打散到各个作业任务中,单个作业的同步数据量较小,同步耗时较短。

依然可以通过同步数据量和网络带宽来做同步性能的预估。在有较高性能要求的多个串行跑批作业的链路中,可以将表同步任务作为异步任务方式执行,降低对作业链路的性能影响。

灾备指标评估

作业级准实时数据同步与T+1异步双活同步相同,对于能够重新跑批生成数据的业务其RPO=0,对于无法通过跑批等方式重新计算生成的数据其RPO=主备双活切换时间+作业跑批时间,可达到分钟级。

RTO的时间接近作业重新跑批的时间,如在执行某个耗时1小时的作业过程中,主集群发生灾难性故障需切换到备份集群,RTO<1小时,只需在备份集群基于上次同步完成的表进行最近一次的作业跑批即可。

4.3双活同步功能对业务影响及功能限制说明

1)对业务影响:双活同步方案同步粒度为表级,因此对业务影响为正在同步的表级别的影响

主集群:正在同步的表支持读,以及insert select、insert values、load、delete、以及开启fast_update模式后的update和merge类Appendonly形式的DML操作,不支持DDL、不开启fast_update模式的update、merge类DML操作;

备集群:正在同步的表不支持读、DML和DDL操作;

2)同步范围:

GVR工具同步范围为对同步表的DML类型操作,不支持对同步表的DDL类型操作的同步;

GVR工具支持对主备集群间元数据同步,包括对表、存储过程、视图、自定义函数类型元数据同步;

05 GVR双活同步工具介绍

GVR(GBase_Visual_RsyncTool)工具封装底层数据同步的实现细节,采用图形化方式简化双活同步配置,支持存储过程等元数据同步,提供双活同步的监控运维功能。
GVR同步工具架构如上图,各模块的职责描述如下:
前端服务:可视化界面,SNMP/ RESTFUL接口
后端服务:接收前端请求,完成用户及权限认证、同步任务调度等
底层工具:负责同步执行,内部封装,用户透明
日志体系:后端服务、底层工具各模块输出记录操作日志
配置库:持久化双活同步配置信息,记录同步任务执行情况

写在最后

GVR支持包括可视化配置主备集群同步、元数据同步、动态展示进度条同步进度、历史同步任务查看、可视化编辑定时任务、同步任务告警功能、主备集群数据一致性校验、数据源管理、同步任务管理、同步调度策略配置、同步任务监控、操作记录审计在内的多种功能。

posted @ 2025-04-25 11:52  GBASE南大通用  阅读(18)  评论(0)    收藏  举报