首页 > 数据库 > 国内数据库 > QianBase xTP的备份和还原
QianBase xTP的备份以作业的方式操作,作业是可能跨越多个SQL会话的长期运行操作,BACKUP语句在作业工作流中执行。备份任务有四个主要阶段:

验证BACKUP 语句的参数,然后将它们写入系统作业表中( system.jobs) ,包括备份的详细信息,备份的选项,用户权限,存储的路径以及数据的键值等等。如果请求了后台模式备份,BACKUP语句就完成了,并返回作业ID。如果没有后台模式选项,语句将等待返回结果。
根据作业中记录的参数以及存储位置中找到的任何以前的备份,确定需要备份存储层中数据的哪个键跨度和时间范围,一旦其中一个节点从系统作业表中接管了作业,它将获取作业记录的信息并概述计划,同时此节点成为协调器。协调器首先进行测试存储位置连接并解析目录,其次确定要备份的键值和时间范围,最后创建计划并发送到确定将要导出备份数据的节点。协调器还将计算集群需要为此备份导出的所有必要键值的跨度及时间范围,它根据哪个节点是该键值跨度范围的租赁者来划分键跨度,每个节点上都有一个SQL备份处理器,用于处理协调器将传递给它的备份计划,完成导出工作的是键值范围的leaseholder节点上的备份SQL处理器。由于集群中的任何节点都可以成为协调器,因此有必要使所有节点都可以连接到备份存储位置。
集群中的各个节点分别读取这些键并将行数据写入备份存储位置。节点开始导出备份数据,分成2个部分,第一个部分导出备份数据,第二个部分向协调器发送进度元数据,协调器将进度元数据合并到检查点文件。
在上面的图中,节点2和节点3包含R1和R2范围的租赁者(Leaseholder)。因此,在此备份任务中,备份数据将从这些节点导出到指定的存储位置。在图中,节点3将向节点2发送进度数据,然后协调器节点将进度数据聚合到存储位置的检查点文件中,检查点文件为备份提供了一个标记,以便在暂停的状态下重新恢复备份。

一旦每个节点完全完成了它们的数据导出工作,协调器将通过写入备份元数据文件来结束备份任务。在图中,节点2将R1的备份数据导出因为它是该范围的租赁者(Leaseholder),该节点还将备份的元数据导出因为它还是协调器。元数据文件描述备份包含的所有内容。如果备份中没有元数据文件,则表示备份没有正确完成,并且无法恢复。
备份集定义了一组备份及其元数据。该集合可以包含多个完全备份及其后续的增量备份。备份路径是使用基于日期的命名方案创建的,并存储在与backup语句一起传递的集合URI中。

通过SHOW BACKUPS IN {collectionURI}将显示集合URI处的备份子目录列表。
数据库的备份分为全量备份和增量备份。
我们可以使用如下最简单的语句进行全量备份

要查看可用的备份子目录,可以使用SHOW BACKUPS。

对于较大的集群,增量备份比全量备份更节省存储和时间。增量备份比全量备份更小,生成速度也更快,因为它们只包含基本备份集以后更改的数据。在已经创建的完整备份的基础上创建增量备份,请使用LATEST语法
要显式控制增量备份的存放位置,可以使用incremental_location选项
创建带有修订历史的完整备份

全集群恢复只能在没有创建数据库或表的目标集群上运行。恢复全集群包括:
所有用户表、相关系统表、所有数据库、所有表以及所有视图。

恢复数据库将创建一个新数据库并恢复其所有表和视图,创建的数据库与备份的数据库具有相同的名称。

使用修订历史进行完整备份或增量备份,则可以将数据还原为该备份捕获的修订历史中的任意时间点,使用AS OF SYSTEM TIME子句指定时间点。如果不指定时间点,则数据将恢复到备份最新时间戳。

从备份中恢复单个表或视图。该过程使用备份中存储的数据在目标数据库中创建全新的表或视图。默认情况下,将表和视图恢复到与备份它们的数据库名称匹配的目标数据库中。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026636/viewspace-2953007/ ,如需转载,请注明出处,否则将追究法律责任。