GBase新闻

专注于数据库软件产品和服务,致力于成为用户最信赖的数据库产品供应商

GBase 8a集群双活容灾方案

发布时间:2021-12-20

MPP分析型集群容灾备份的必要性

容灾备份要求

MPP分析型集群的容灾备份在技术实现上、灾备级别要求上都与在线生产系统的OLTP事务数据库有较大差异。如事务数据库具有完备的WAL(write ahead logging)事务日志,灾备可以通过事务日志实现数据库的备份、双活复制、异地容灾等;MPP分析型数据库为追求大吞吐性能去掉了事务日志支持,无法采用基于事务日志的容灾备份方案。

随着《“十四五”大数据产业发展规划》发布,大数据日趋成为重要的数字经济支撑,对承载数据仓库、负责高价值密度大数据存储分析的MPP集群进行全面的容灾备份变的格外重要。

在数据库容灾备份的行业要求方面,主要还是参照工信部发布的《GB/T 20988-2007信息安全技术 信息系统灾难恢复规范》进行各行业、各企业自己数据库灾备要求和灾备等级划分。

容灾备份等级

根据《GB/T 20988-2007信息安全技术 信息系统灾难恢复规范》对企业信息系统灾难备份的技术等级化为为以下六级:

第6级  数据零丢失及远程集群支持

第5级  实时数据传输及完整设备支持

第4级  电子传输及完整设备支持

第3级  电子传输和部分设备支持

第2级  备用场地支持

第1级  基本支持

每个层级对应的系统恢复时间目标(RTO,灾难发生后信息系统从停顿到必须恢复的时间要求)、恢复点目标(RPO,灾难发生后数据必须恢复到的时间点要求)有所不同,对应的灾备方案也就不同。如在《银行业信息系统灾难恢复管理规范》行业标准中,灾备级别与RTO、RPO的对应要求如下:

1.png

MPP集群数据库的灾备也遵循上述要求,如某行业针对承载重要数据及业务的MPP集群数据库容灾要求如下:

2.png

双活集群

双活系统是一种更高等级的容灾,在第4级及以上级别的容灾等级中,可以通过建立双活系统的方式满足数据安全、业务连续要求。

MPP分析型数据库不支持事务日志,无法基于成熟的事务日志复制方案建设双活集群,所以MPP分析型数据库可采用的双活集群方案也只有基于数据分片冗余存储(数据文件复制)这一个方式。同一个集群内的多个数据副本实时同步只适用于同机房的部署,无法满足跨机房、跨城市的灾备建设。为解决异地灾备,就需要进行两个不同MPP集群间的基于数据文件的复制。

GBase 8a异步双活集群

GBase 8a的异步双活集群为Master-Slave主备形式,主集群数据可写,承担数据统计分析等数据加工业务,完成数据加工后将重要的结果数据同步到备份集群,备集群可以分担主集群对外业务查询服务,降低主集群读写对系统资源的争抢压力。

数据的同步过程基于集群间同步工具(RSyncTools)实现。RSyncTools同步工具提供了数据同步需要的最核心的功能及异常处理,各功能点具有低耦合性,使应用程序能够灵活的调用接口,实现同城灾备或者异地灾备。

异步双活同步示意图如下:

3.png

1. 同城或异地的两个机房中,分别搭建同等规模、同样数据分布的GBase 8a集群;

2. 业务应用连接主集群(上图中机房1中的集群)进行批量作业的执行;

3. 集群间数据同步采用脚本定时调度的方式或由应用调度程序调度的方式进行调度执行;

上图所示为应用调度程序在完成一个作业执行后,立即进行该作业涉及结果表的同步;

脚本定时调度的方式如每天凌晨5点,在完成日跑批后,由定时任务调起数据同步任务;

4. 数据同步通过执行RSyncTools工具完成,RSyncTools同步工具按表进行同步,提供同步功能调用接口,主要传递参数为同步库名表名、主集群管理节点IP地址、备集群管理节点IP等参数。RsyncTools根据传入的库名表名连接主备集群,查询同步表元数据信息,如发现元数据信息差异则进行数据文件同步的差量同步。同步过程采用主备集群节点对节点的并行方式进行,同步的数据文件为压缩态的数据存储文件。

集群间同步工具具有如下特性:

  • 具备表级粒度增量数据同步能力,支持用户自定义同步任务,可定义优先级优先同步重要的表数据。

  • 具备原子性的特性,即如果一个表在数据同步过程中出现故障,集群间同步工具能够自动回滚,从而保障主备集群的数据一致性。

  • 具备增量数据捕获的特性,即自动识别变化数据并同步。

  • 具备高效数据同步特性,仅同步主副本数据,从副本数据由备份集群内部同步实现;并且同步时直接使用压缩态的二进制文件方式,可有效提升同步效率。

5. 机房2中的备份集群,可用于承担只读业务,实现读写分离,即主集群负责数据的批量统计分析运算,备集群负责查询响应。

GBase 8a实时双活集群

GBase 8a集群V9版本支持虚拟集群,在虚拟集群中将两个同样规模和数据分布策略的子集群之间建立镜像关系,就称为镜像集群。顾名思义,两个镜像集群中的表和数据是一致的。

镜像集群实现了计算集群的实时双活,可以支持同城的实时双活场景。双活示意图如下:

4.png


1. 在GBase 8a V9虚拟集群的两个同样规模和配置子集群之间,建立镜像关系,镜像关系可以按表进行创建,也可以按照数据库进行创建;

2. 虚拟集群中互为镜像的两个子集群可以部署在同机房内,也可以部署在同城的不同机房内,对两个子集群之间的网络质量和网络带宽有一定要求;当两个子集群位于不同机房时,就形成了同城异地的灾备;在同城异地部署中,可以在备份机房中部署1个coordinator节点,实现管理集群的数据灾备;

3. 业务直接连接其中的一个子集群进行操作,下发DDL、DML、DQL等SQL语句,对于DDL,将同时下发到互为镜像的两个集群中执行;对于DML、DQL操作则直接下发到当前应用的默认子集群中执行,DML的执行结果采用链式转发方式传输到另一个子集群中;镜像集群中的数据修改操作,需要在两个子集群中统一提交后才返回执行结果给用户;

4. 如果计算集群发生故障,通过修改业务的默认子集群,即可完成集群业务切换,如上图中的VC1集群和VC2集群为镜像集群关系,业务默认直接在VC1上执行,当VC1发生整体故障后,修改业务默认连接VC2即可实现业务在VC2上执行;

5. 如果管理集群在主机房中的所有节点发送故障,需要人工修改集群管理节点的配置为备份机房中的管理节点为管理集群的唯一节点后,业务就可通过备份机房中的管理节点下发SQL任务。

GBase 8a两地三中心灾备方案

对容灾备份要求更高的场景,可以结合GBase 8a集群的异步双活、实时双活,增加数据备份的保障。如在已经建立了异步双活集群的环境下,每天在进行主备集群同步的同时,在主集群上进行数据的周期备份,如每周进行一次全备份,每天进行一次增量备份。此外,还可以结合GBase 8a集群的异步双活和实时双活,形成两地三中心的灾备方案,如下:

5.png

主数据中心通过虚拟集群的镜像技术实现了同一个数据中心内两个虚拟子集群间实时同步的强一致双活;

备数据中心和主数据中心间通过集群间同步工具实现了异步方式数据同步的准实时的双活容灾。

GBase 8a异步双活集群与实时双活集群的差异

GBase 8a集群异步双活和实时双活有如下差异:

6.jpg