GBase 8a MPP Cluster提供完备的备份/恢复工具(GBase gcrcman)。GBase gcrcman支持全量备份和增量备份两种备份方式,可以方便地对整个集群中的数据进行在线备份和恢复(也提供基于文件备份的物理备份方式,物理备份方式仅支持全量备份),可将数据直接备份到磁带或其他存储设备上,证备份期间数据库满足提供7x24小时可访问服务。备份/恢复工具支持的具体功能如下:

1)数据库的备份和恢复,查看备份记录,删除、回滚数据库备份记录等;

2)表的备份和恢复,查看备份记录,删除、回滚数据库备份记录;

3)远程拷贝数据到集群,当集群的备份数据保存在集群以外的其它主机上时,可以通过命令将需要的数据拷贝到集群各节点的目录中;

4)拷贝数据到远程存储,通过命令可以将数据从集群节点拷贝到指定主机的对应目录下,如磁盘阵列、磁带库等。

作为增量备份机制,gcrcman工具会在执行完成每次全量和增量备份后,保持备份完成后的SCN号码(这个号码对应GBase 8a MPP Cluster内各个节点下数据文件的尾块号码),增量备份执行前,gcrcman会调取这个SCN号,并和现在的最新的数据文件的尾块号码比较,并判断作为增量的数据块范围,之后如下图所示的采用多线程方式将本地磁盘上数据块并行抽取到指定的备份数据文件夹下。作为update这样更新操作的数据备份,gcrcman会根据更新比例,合理选择增量策略,如果更新比例较大,备份工具会对备份字段的对应列数据文件采取全量备份,而完全废弃前一次备份时的对应列数据文件;而如果更新比例较小,备份工具则会备份更新标识列(作为一种特殊列,标识本行数据是否已经被设置为无效),同时将更新后数据作为增量数据块备份过来。

gcrcman作为一种备份调度框架,还可以并行执行MPP集群内多个节点上数据块备份,如果备份目标目录采用多个存储介质或者集群上各个节点内的本地存储,就可以完全实现并行备份和恢复的目标。

每次备份后,为了保证备份数据的准确性和一致性,备份工具会实行以下备份检查:

在备份前,它可以对数据库数据进行校验,从而保证备份数据的来源是正确的;

在备份中,它实时计算备份数据的校验值;备份完成后,再从备份介质回读,并计算校验值,经过两者对比,确保数据正确写入备份介质。

在数据进行恢复时,gcrcman会自动根据各种表对应的备份数据文件(包括增量备份和全量备份),按照在每个数据备份文件上标识的SCN号进行排序,并按照SCN号顺序在数据文件上进行数据恢复。为保证恢复数据的正确性,gcrcman会计算备份数据的校验值,从而确保备份数据未被篡改。恢复过程中,gcrcman会显示数据恢复进度,如果有数据块损坏,会进行报错。

同时gcrcman不仅支持数据文件本身的备份,还支持对元数据文件实现全量和增量备份。作为元数据备份对象,包括表,视图,存储过程,,自定义函数,集群拓扑等全类数据。

gcrcman保持了完善的表结构到数据文件间的映射关系元数据,所以可以实现基于各种级别粒度的数据恢复,备份和恢复粒度,包括库级数据,也包括表级数据。