分布式数据库系统的全量备份方法、装置及计算机可读存储介质转让专利

申请号 : CN202010858530.5

文献号 : CN112000521B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周家晶苗浩周继恩

申请人 : 中国银联股份有限公司

摘要 :

本发明提供了分布式数据库系统的全量备份方法、装置及计算机可读存储介质,其中分布式数据库系统包括多个数据节点,方法包括:获取分布式数据库系统的各个数据节点的全量备份数据,全量备份数据对应的全量备份时间点为第一时间点;确定第一时间点的信任分歧时间点;获取各个数据节点在第一时间点的信任分歧时间点至第一时间点之间的第一增量日志集合;从第一增量日志集合中获取各个数据节点处于预备状态且未被提交或回滚的未决事务;将各个数据节点的未决事务在各个数据节点的全量备份数据上进行回放。利用上述方法,能够在对分布式数据库系统的各个数据节点进行全量备份时,可对当前处于预备状态但却未提交或回滚的分支事务进行备份入库。

权利要求 :

1.一种分布式数据库系统的全量备份方法,其特征在于,所述分布式数据库系统包括多个数据节点,所述方法包括:

获取所述分布式数据库系统的各个数据节点的全量备份数据,所述全量备份数据对应的全量备份时间点为第一时间点;

确定所述第一时间点的信任分歧时间点,其中,在所述第一时间点的所述信任分歧时间点之前所有处于预备状态的事务能够在所述第一时间点之前被提交或回滚;

获取所述各个数据节点在所述第一时间点的信任分歧时间点至所述第一时间点之间的第一增量日志集合;

从所述第一增量日志集合中获取所述各个数据节点处于预备状态且未被提交或回滚的未决事务;

将所述各个数据节点的所述未决事务在所述各个数据节点的所述全量备份数据上进行回放。

2.根据权利要求1所述的方法,其特征在于,所述获取所述分布式数据库系统的各个数据节点的全量备份数据,还包括:在所述第一时间点对所述各个数据节点进行数据节点快照,并记录所述各个数据节点当前已经入库的数据作为所述全量备份数据。

3.根据权利要求1所述的方法,其特征在于,确定所述第一时间点的信任分歧时间点,包括:

根据所述第一时间点获取所述各个数据节点的增量日志;

根据所述各个数据节点的增量日志确定多个分支事务的预备时间点和提交时间点,并根据所述多个分支事务的所述预备时间点和所述提交时间点确定所述第一时间点的信任分歧时间点。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:根据所述多个分支事务的所述预备时间点和所述提交时间点确定分支事务提交时间;

获取大于预设时长的所述分支事务提交时间,并将对应分支事务的所述预备时间点和所述提交时间点记入分支事务耗时表;

根据所述分支事务耗时表确定所述第一时间点的信任分歧时间点。

5.根据权利要求4所述的方法,其特征在于,根据所述分支事务耗时表确定所述第一时间点的信任分歧时间点,包括:

根据所述分支事务耗时表查找符合预设条件的事务,其中所述预设条件为所述预备时间点在t1‑s之前且对应的所述提交时间点在所述t1之后,其中,所述t1为所述第一时间点,所述s为所述预设时长;

其中,若在所述分支事务耗时表中查找到符合所述预设条件的事务,则从符合所述预设条件的分支事务中选取最早的所述预备时间点,作为所述第一时间点的信任分歧时间点;

其中,若在所述分支事务耗时表中无法查找出符合所述预设条件的事务,则确定所述第一时间点的信任分歧时间点为t1‑s,其中,所述t1为所述第一时间点,所述s为所述预设时长。

6.一种分布式数据库系统的全量备份方法,其特征在于,所述分布式数据库系统包括多个数据节点,所述方法包括:

在第二时间点对所述分布式数据库系统中的各个数据节点进行全量备份,以获取第二全量备份数据,且确定所述全量备份的完成时间点为第三时间点;

确定所述第二时间点的信任分歧时间点,其中,在所述第二时间点的所述信任分歧时间点之前所有处于预备状态的事务能够在所述第二时间点之前被提交或回滚;

获取所述各个数据节点在所述第二时间点的所述信任分歧时间点至第四时间点之间的第二增量日志集合,其中所述第四时间点为所述第三时间点之后的任意时间点;

将所述第二增量日志集合在所述第二全量备份数据上进行容错回放。

7.根据权利要求6所述的方法,其特征在于,确定所述第二时间点的信任分歧时间点,包括:

根据所述第二时间点获取所述各个数据节点的增量日志;

根据所述各个数据节点的增量日志确定多个分支事务的预备时间点和提交时间点,并根据所述多个分支事务的所述预备时间点和所述提交时间点确定所述第二时间点的信任分歧时间点。

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:根据所述多个分支事务的所述预备时间点和所述提交时间点确定分支事务提交时间;

获取大于预设时长的所述分支事务提交时间,并将对应分支事务的所述预备时间点和所述提交时间点记入分支事务耗时表;

根据所述分支事务耗时表确定所述第二时间点的信任分歧时间点。

9.根据权利要求8所述的方法,其特征在于,根据所述分支事务耗时表确定所述第二时间点的信任分歧时间点,包括:

根据所述分支事务耗时表查找符合预设条件的事务,其中所述预设条件为所述预备时间点在t2‑s之前且对应的所述提交时间点在所述t2之后,其中,所述t2为所述第二时间点,所述s为所述预设时长;

其中,若在所述分支事务耗时表中查找到符合所述预设条件的事务,则从符合所述预设条件的分支事务中选取最早的所述预备时间点,作为所述第二时间点的信任分歧时间点;

其中,若在所述分支事务耗时表中无法查找出符合所述预设条件的事务,则确定所述第二时间点的信任分歧时间点为t2‑s,其中,所述t2为所述第二时间点,所述s为所述预设时长。

10.根据权利要求6所述的方法,其特征在于,将所述第二增量日志集合在所述第二全量备份数据上进行容错回放,包括:在回放过程中对已记录数据进行写冲突处理。

11.一种分布式数据库系统的全量备份装置,其特征在于,所述分布式数据库系统包括多个数据节点,所述装置包括:

第一备份单元,用于获取所述分布式数据库系统的各个数据节点的全量备份数据,所述全量备份数据对应的全量备份时间点为第一时间点;

第一确定单元,用于确定所述第一时间点的信任分歧时间点,其中,在所述第一时间点的所述信任分歧时间点之前所有处于预备状态的事务能够在所述第一时间点之前被提交或回滚;

第一获取单元,用于获取所述各个数据节点在所述第一时间点的信任分歧时间点至所述第一时间点之间的第一增量日志集合,从所述第一增量日志集合中获取所述各个数据节点处于预备状态且未被提交或回滚的未决事务;

第一回放单元,用于将所述各个数据节点的所述未决事务在所述各个数据节点的所述全量备份数据上进行回放。

12.根据权利要求11所述的装置,其特征在于,所述第一备份单元还用于:在所述第一时间点对所述各个数据节点进行数据节点快照,并记录所述各个数据节点当前已经入库的数据作为所述全量备份数据。

13.根据权利要求11所述的装置,其特征在于,所述第一确定单元还用于:根据所述第一时间点获取所述各个数据节点的增量日志根据所述各个数据节点的增量日志确定多个分支事务的预备时间点和提交时间点,并根据所述多个分支事务的所述预备时间点和所述提交时间点确定所述第一时间点的信任分歧时间点。

14.根据权利要求13所述的装置,其特征在于,所述第一确定单元还用于:根据所述多个分支事务的所述预备时间点和所述提交时间点确定分支事务提交时间;

获取大于预设时长的所述分支事务提交时间,并将对应分支事务的所述预备时间点和所述提交时间点记入分支事务耗时表;

根据所述分支事务耗时表确定所述第一时间点的信任分歧时间点。

15.根据权利要求14所述的装置,其特征在于,所述第一确定单元还用于:根据所述分支事务耗时表查找符合预设条件的事务,其中所述预设条件为所述预备时间点在t1‑s之前且对应的所述提交时间点在所述t1之后,其中,所述t1为所述第一时间点,所述s为所述预设时长;

其中,若在所述分支事务耗时表中查找到符合所述预设条件的事务,则从符合所述预设条件的分支事务中选取最早的所述预备时间点,作为所述第一时间点的信任分歧时间点;

其中,若在所述分支事务耗时表中无法查找出符合所述预设条件的事务,则确定所述第一时间点的信任分歧时间点为t1‑s,其中,所述t1为所述第一时间点,所述s为所述预设时长。

16.一种分布式数据库系统的全量备份装置,其特征在于,所述分布式数据库系统包括多个数据节点,所述装置包括:

第二备份单元,用于在第二时间点对所述分布式数据库系统中的各个数据节点进行全量备份,以获取第二全量备份数据,且确定所述全量备份的完成时间点为第三时间点;

第二确定单元,用于确定所述第二时间点的信任分歧时间点,其中,在所述第二时间点的所述信任分歧时间点之前所有处于预备状态的事务能够在所述第二时间点之前被提交或回滚;

第二获取单元,用于获取所述各个数据节点在所述第二时间点的所述信任分歧时间点至第四时间点之间的第二增量日志集合,其中所述第四时间点为所述第三时间点之后的任意时间点;

第二回放单元,用于将所述第二增量日志集合在所述第二全量备份数据上进行容错回放。

17.根据权利要求16所述的装置,其特征在于,所述第二确定单元还用于:根据所述第二时间点获取所述各个数据节点的增量日志根据所述各个数据节点的增量日志确定多个分支事务的预备时间点和提交时间点,并根据所述多个分支事务的所述预备时间点和所述提交时间点确定所述第二时间点的信任分歧时间点。

18.根据权利要求17所述的装置,其特征在于,所述第二确定单元还用于:根据所述多个分支事务的所述预备时间点和所述提交时间点确定分支事务提交时间;

获取大于预设时长的所述分支事务提交时间,并将对应分支事务的所述预备时间点和所述提交时间点记入分支事务耗时表;

根据所述分支事务耗时表确定所述第二时间点的信任分歧时间点。

19.根据权利要求18所述的装置,其特征在于,所述第二确定单元还用于:根据所述分支事务耗时表查找符合预设条件的事务,其中所述预设条件为所述预备时间点在t2‑s之前且对应的所述提交时间点在所述t2之后,其中,所述t2为所述第二时间点,所述s为所述预设时长;

其中,若在所述分支事务耗时表中查找到符合所述预设条件的事务,则从符合所述预设条件的分支事务中选取最早的所述预备时间点,作为所述第二时间点的信任分歧时间点;

其中,若在所述分支事务耗时表中无法查找出符合所述预设条件的事务,则确定所述第二时间点的信任分歧时间点为t2‑s,其中,所述t2为所述第二时间点,所述s为所述预设时长。

20.根据权利要求16所述的装置,其特征在于,所述第二回放单元还用于:在回放过程中对已记录数据进行写冲突处理。

21.一种分布式数据库系统的全量备份装置,其特征在于,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:如权利要求1‑5中任一项所述的方法,或者如权利要求6‑7中任一项所述的方法。

22.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被多核处理器执行时,使得所述多核处理器执行如权利要求1‑5中任一项所述的方法,或者如权利要求6‑7中任一项所述的方法。

说明书 :

分布式数据库系统的全量备份方法、装置及计算机可读存储

介质

技术领域

[0001] 本发明属于计算机技术领域,具体涉及分布式数据库系统的全量备份方法、装置及计算机可读存储介质。

背景技术

[0002] 本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003] 分布式数据库会将数据分布存储在多个节点(一般称为数据节点),图1为一种分布式数据库系统,该所述分布式数据库系统100包括协调器节点101、多个数据节点102以及
多个客户端。其中,分布式事务的协调器节点101(Coordinator)处理事务的逻辑如下:如果
全局事务只涉及1个数据节点,则该数据节点可以只用一阶段协议进行事务提交即可。当然
也可以使用两阶段协议进行事务提交,但会导致较差的处理性能以及增加故障概率;如果
全局事务涉及多个数据节点,那么会在数据节点开始分支事务采用两阶段(2PC)协议(也可
以使用三阶段协议的),由协调器控制分支事务进入预备(Prepare)状态,待分支事务都处
于预备(Prepare)状态后,记录一条全局事务日志(包含全局事务对应的分支事务信息),如
果该全局事务日志记录成功(即认为全局事务一定成功),则开始提交处于预备(Prepare)
状态的分支事务,直到提交成功为止,若全局事务日志记录失败(即认为全局事务最终会失
败),则回滚所有分支事务。
[0004] 然而,各数据节点在某个时间点进行全量备份时,处于预备(Prepare)状态的分支事务一般未被记录,也即是说,如全量备份时间点在某一分支事务的预备日志落地和提交
日志落地之间,则无法对该分支事务进行备份。

发明内容

[0005] 针对上述现有技术中存在的问题,提出了分布式数据库系统的全量备份方法、装置及计算机可读存储介质,利用这种方法、装置及计算机可读存储介质,能够解决上述问
题。
[0006] 本发明提供了以下方案。
[0007] 第一方面,提供一种分布式数据库系统的全量备份方法,分布式数据库系统包括多个数据节点,方法包括:获取分布式数据库系统的各个数据节点的全量备份数据,全量备
份数据对应的全量备份时间点为第一时间点;确定第一时间点的信任分歧时间点,其中,在
第一时间点的信任分歧时间点之前所有处于预备状态的事务能够在第一时间点之前被提
交或回滚;获取各个数据节点在第一时间点的信任分歧时间点至第一时间点之间的第一增
量日志集合;从第一增量日志集合中获取各个数据节点处于预备状态且未被提交或回滚的
未决事务;将各个数据节点的未决事务在各个数据节点的全量备份数据上进行回放。
[0008] 在一种可能的实施方式中,获取分布式数据库系统的各个数据节点的全量备份数据,还包括:在第一时间点对各个数据节点进行数据节点快照,并记录各个数据节点当前已
经入库的数据作为全量备份数据。
[0009] 在一种可能的实施方式中,确定第一时间点的信任分歧时间点,包括:根据第一时间点获取各个数据节点的增量日志;根据各个数据节点的增量日志确定多个分支事务的预
备时间点和提交时间点,并根据多个分支事务的预备时间点和提交时间点确定第一时间点
的信任分歧时间点。
[0010] 在一种可能的实施方式中,方法还包括:根据多个分支事务的预备时间点和提交时间点确定分支事务提交时间;获取大于预设时长的分支事务提交时间,并将对应分支事
务的预备时间点和提交时间点记入分支事务耗时表;根据分支事务耗时表确定第一时间点
的信任分歧时间点。
[0011] 在一种可能的实施方式中,根据分支事务耗时表确定第一时间点的信任分歧时间点,包括:根据分支事务耗时表查找符合预设条件的事务,其中预设条件为预备时间点在
t1‑s之前且对应的提交时间点在t1之后,其中,t1为第一时间点,s为预设时长;其中,若在
分支事务耗时表中查找到符合预设条件的事务,则从符合预设条件的分支事务中选取最早
的预备时间点,作为第一时间点的信任分歧时间点;其中,若在分支事务耗时表中无法查找
出符合预设条件的事务,则确定第一时间点的信任分歧时间点为t1‑s,其中,t1为第一时间
点,s为预设时长。
[0012] 第二方面,提供另一种分布式数据库系统的全量备份方法,分布式数据库系统包括多个数据节点,方法包括:在第二时间点对分布式数据库系统中的各个数据节点进行全
量备份,以获取第二全量备份数据,且确定全量备份的完成时间点为第三时间点;确定第二
时间点的信任分歧时间点,其中,在第二时间点的信任分歧时间点之前所有处于预备状态
的事务能够在第二时间点之前被提交或回滚;获取各个数据节点在第二时间点的信任分歧
时间点至第四时间点之间的第二增量日志集合,其中第四时间点为第三时间点之后的任意
时间点;将第二增量日志集合在第二全量备份数据上进行容错回放。
[0013] 在一种可能的实施方式中,确定第二时间点的信任分歧时间点,包括:根据第二时间点获取各个数据节点的增量日志;根据各个数据节点的增量日志确定多个分支事务的预
备时间点和提交时间点,并根据多个分支事务的预备时间点和提交时间点确定第二时间点
的信任分歧时间点。
[0014] 在一种可能的实施方式中,方法还包括:根据多个分支事务的预备时间点和提交时间点确定分支事务提交时间;获取大于预设时长的分支事务提交时间,并将对应分支事
务的预备时间点和提交时间点记入分支事务耗时表;根据分支事务耗时表确定第二时间点
的信任分歧时间点。
[0015] 在一种可能的实施方式中,分支事务耗时表确定第二时间点的信任分歧时间点,包括:根据分支事务耗时表查找符合预设条件的事务,其中预设条件为预备时间点在t2‑s
之前且对应的提交时间点在t2之后,其中,t2为第二时间点,s为预设时长;其中,若在分支
事务耗时表中查找到符合预设条件的事务,则从符合预设条件的分支事务中选取最早的预
备时间点,作为第二时间点的信任分歧时间点;其中,若在分支事务耗时表中无法查找出符
合预设条件的事务,则确定第二时间点的信任分歧时间点为t2‑s,其中,t2为第二时间点,s
为预设时长。
[0016] 在一种可能的实施方式中,将第二增量日志集合在第二全量备份数据上进行容错回放,包括:在回放过程中对已记录数据进行写冲突处理。
[0017] 第三方面,提供一种分布式数据库系统的全量备份装置,其特征在于,分布式数据库系统包括多个数据节点,装置包括:第一备份单元,用于获取分布式数据库系统的各个数
据节点的全量备份数据,全量备份数据对应的全量备份时间点为第一时间点;第一确定单
元,用于确定第一时间点的信任分歧时间点,其中,在第一时间点的信任分歧时间点之前所
有处于预备状态的事务能够在第一时间点之前被提交或回滚;第一获取单元,用于获取各
个数据节点在第一时间点的信任分歧时间点至第一时间点之间的第一增量日志集合,从第
一增量日志集合中获取各个数据节点处于预备状态且未被提交或回滚的未决事务;第一回
放单元,用于将各个数据节点的未决事务在各个数据节点的全量备份数据上进行回放。
[0018] 在一种可能的实施方式中,第一备份单元还用于:在第一时间点对各个数据节点进行数据节点快照,并记录各个数据节点当前已经入库的数据作为全量备份数据。
[0019] 在一种可能的实施方式中,第一确定单元还用于:根据第一时间点获取各个数据节点的增量日志;根据各个数据节点的增量日志确定多个分支事务的预备时间点和提交时
间点,并根据多个分支事务的预备时间点和提交时间点确定第一时间点的信任分歧时间
点。
[0020] 在一种可能的实施方式中,第一确定单元还用于:根据多个分支事务的预备时间点和提交时间点确定分支事务提交时间;获取大于预设时长的分支事务提交时间,并将对
应分支事务的预备时间点和提交时间点记入分支事务耗时表;根据分支事务耗时表确定第
一时间点的信任分歧时间点。
[0021] 在一种可能的实施方式中,第一确定单元还用于:根据分支事务耗时表查找符合预设条件的事务,其中预设条件为预备时间点在t1‑s之前且对应的提交时间点在t1之后,
其中,t1为第一时间点,s为预设时长;其中,若在分支事务耗时表中查找到符合预设条件的
事务,则从符合预设条件的分支事务中选取最早的预备时间点,作为第一时间点的信任分
歧时间点;其中,若在分支事务耗时表中无法查找出符合预设条件的事务,则确定第一时间
点的信任分歧时间点为t1‑s,其中,t1为第一时间点,s为预设时长。
[0022] 第四方面,提供另一种分布式数据库系统的全量备份装置,其特征在于,分布式数据库系统包括多个数据节点,装置包括:第二备份单元,用于在第二时间点对分布式数据库
系统中的各个数据节点进行全量备份,以获取第二全量备份数据,且确定全量备份的完成
时间点为第三时间点;第二确定单元,用于确定第二时间点的信任分歧时间点,其中,在第
二时间点的信任分歧时间点之前所有处于预备状态的事务能够在第二时间点之前被提交
或回滚;第二获取单元,用于获取各个数据节点在第二时间点的信任分歧时间点至第四时
间点之间的第二增量日志集合,其中第四时间点为第三时间点之后的任意时间点;第二回
放单元,用于将第二增量日志集合在第二全量备份数据上进行容错回放。
[0023] 在一种可能的实施方式中,第二确定单元还用于:根据第二时间点获取各个数据节点的增量日志;根据各个数据节点的增量日志确定多个分支事务的预备时间点和提交时
间点,并根据多个分支事务的预备时间点和提交时间点确定第二时间点的信任分歧时间
点。
[0024] 在一种可能的实施方式中,第二确定单元还用于:根据多个分支事务的预备时间点和提交时间点确定分支事务提交时间;获取大于预设时长的分支事务提交时间,并将对
应分支事务的预备时间点和提交时间点记入分支事务耗时表;根据分支事务耗时表确定第
二时间点的信任分歧时间点。
[0025] 在一种可能的实施方式中,第二确定单元还用于:根据分支事务耗时表查找符合预设条件的事务,其中预设条件为预备时间点在t2‑s之前且对应的提交时间点在t2之后,
其中,t2为第二时间点,s为预设时长;其中,若在分支事务耗时表中查找到符合预设条件的
事务,则从符合预设条件的分支事务中选取最早的预备时间点,作为第二时间点的信任分
歧时间点;其中,若在分支事务耗时表中无法查找出符合预设条件的事务,则确定第二时间
点的信任分歧时间点为t2‑s,其中,t2为第二时间点,s为预设时长。
[0026] 在一种可能的实施方式中,第二回放单元还用于:在回放过程中对已记录数据进行写冲突处理。
[0027] 第五方面,提供一种分布式数据库系统的全量备份装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行
的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:如第一方面的方法,
或者如第二方面的方法。
[0028] 第六方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行如第一方面的方法,或者如第二方面的方法。
[0029] 本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:在对分布式数据库系统的各个数据节点进行全量备份时,利用上述实施例可对当前处于预备状态但却
未提交或回滚的分支事务进行入库。
[0030] 应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和
优点能够更明显易懂,以下特举例说明本发明的具体实施方式。

附图说明

[0031] 通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的优点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是
对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
[0032] 图1为一种分布式数据库的示意图;
[0033] 图2为根据本发明一实施例的分布式数据库的备份方法的流程示意图;
[0034] 图3为根据本发明另一实施例的分布式数据库的备份方法的流程示意图;
[0035] 图4为根据本发明一实施例的分布式数据库的备份装置的结构示意图;
[0036] 图5为根据本发明另一实施例的分布式数据库的备份装置的结构示意图;
[0037] 图6为根据本发明又一实施例的分布式数据库的备份装置的结构示意图。
[0038] 在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

[0039] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例
所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围
完整的传达给本领域的技术人员。
[0040] 在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、
数字、步骤、行为、部件、部分或其组合存在的可能性。
[0041] 另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0042] 本领域技术人员可以理解,所描述的应用场景仅是本发明的实施方式可以在其中得以实现的一个示例。本发明实施方式的适用范围不受任何限制。在介绍了本发明的基本
原理之后,下面具体介绍本发明的各种非限制性实施方式。
[0043] 图2为根据本申请一实施例的分布式数据库的备份方法200的流程示意图,在该流程中,从设备角度而言,执行主体可以是一个或者多个电子设备;从程序角度而言,执行主
体相应地可以是搭载于这些电子设备上的程序。
[0044] 如图2所示,该方法200可以包括:
[0045] 步骤201、获取分布式数据库系统的各个数据节点的全量备份数据。
[0046] 其中,获取全量备份数据对应的全量备份时间点为第一时间点t1。在分布式数据库中,每个数据节点均有各自对应的全量备份数据,在某一个特定时刻,每个数据节点的全
量备份数据包含了在这个特定时刻时每个数据节点的全部数据。例如第一数据节点具有第
一全量备份数据,第二数据节点具有第二全量备份数据。
[0047] 在一种可能的实施方式中,步骤201还可以具体包括:在第一时间点对各个数据节点进行数据节点快照,并记录当前已经入库的数据作为第一全量备份数据。
[0048] 一个示例中,可以选择在某个时间点对各个数据节点创建快照,快照的一个基本用处就是数据备份,从而在创建完成后的另一个时间点,可以将数据节点中的数据恢复到
创建快照的时间节点。在第一时间点t1对各个数据节点进行数据节点快照,并将第一时间
点t1已经入库的数据作为第一全量备份数据,其中各数据节点在全量备份时,处于预备
(Prepare)状态而未提交的事务一般未被记录入库,因此第一全量备份数据中并不包含各
个数据节点在第一时间点t1时已处于预备(prepare)状态而未提交的事务数据。
[0049] 步骤202、确定第一时间点t1的信任分歧时间点a。其中,在第一时间点t1之前寻找一信任分歧时间点a,在第一时间点t1的信任分歧时间点a之前所有处于预备状态的事务能
够在第一时间点t1之前被提交或回滚。
[0050] 在一种可能的实施方式中,步骤202还包括:根据第一时间点t1获取各个数据节点的增量日志;根据各个数据节点的增量日志确定多个分支事务的预备时间点和提交时间
点,并根据多个分支事务的预备时间点和提交时间点确定第一时间点的信任分歧时间点。
具体地,分支事务的预备时间点也即采用两阶段(2PC)协议时分支事务进入预备(Prepare)
状态的时间点,分支事务的提交时间点也即提交处于预备(Prepare)状态的分支事务的时
间点。
[0051] 各个数据节点可以根据所执行分支事务的预备(Prepare)时间点和提交(Commit)时间点计算分析得到该第一时间点t1的信任分歧时间点a。针对数据节点的第一时间点t1
而言的信任分歧时间点a,信任分歧时间点a之前所有处于预备(Prepare)状态的分支事务
一定能根据第一时间点t1之前的增量日志确定会被提交或回滚,而信任分歧时间点a到第
一时间点t1之间存在的处于预备(prepare)状态的分支事务则不能根据第一时间点t1之间
的增量日志确定事务最终状态。
[0052] 在一种可能的实施方式中,步骤202还可以包括:根据多个分支事务的预备时间点和提交时间点确定分支事务提交时间;获取大于预设时长的分支事务提交时间,并将对应
分支事务的预备时间点和提交时间点记入分支事务耗时表;根据分支事务耗时表确定第一
时间点t1的信任分歧时间点a。可选地,可以在每个数据节点上维护一个分支事务耗时表,
或者各数据节点共同维护一个分支事务耗时表,用以计算得到数据节点上针对第一时间点
的信任分歧时间点。
[0053] 在一种可能的实施方式中,上述根据分支事务耗时表确定第一时间点的信任分歧时间点,包括:首先,根据分支事务耗时表查找符合预设条件的分支事务,其中预设条件为
预备时间点在t1‑s之前且对应的提交时间点在t1之后,其中,t1为第一时间点,s为根据经
验值而获取的预设时长;其中,若在分支事务耗时表中查找到符合预设条件的事务,则确定
第一时间点的信任分歧时间点为符合预设条件的分支事务中的最早的预备时间点;其中,
若在分支事务耗时表中无法查找出符合预设条件的事务,则确定第一时间点的信任分歧时
间点为t1‑s,其中,t1为第一时间点,s为预设时长。可以分析获知,进入预备状态但却未提
交或回滚的未决事务仅会存在于信任分歧时间点之后。可选地,也可以采用上述符合预设
条件的分支事务对应的最早的预备时间点之前的任意一个时间点作为信任分歧时间点。
[0054] 步骤203、获取各个数据节点在第一时间点t1的信任分歧时间点a至第一时间点t1之间的第一增量日志集合,从第一增量日志集合中获取处于预备状态且未被提交或回滚的
未决事务;
[0055] 步骤204、将未决事务在第一全量备份数据上进行回放。
[0056] 根据上述实施例的各个方面,可以在各数据节点的全量备份时将处于预备状态的事务记录入库。
[0057] 图3为根据本申请一实施例的分布式数据库的备份方法300的流程示意图,在该流程中,从设备角度而言,执行主体可以是一个或者多个电子设备;从程序角度而言,执行主
体相应地可以是搭载于这些电子设备上的程序。
[0058] 如图3所示,该方法300可以包括:
[0059] 步骤301、在第二时间点t2对分布式数据库系统中的各个数据节点进行全量备份,以获取第二全量备份数据,且确定全量备份的完成时间点为第三时间点t3;
[0060] 其中,在第二时间点t2进行开始对各个数据节点进行数据备份(例如按表导出),并记录数据备份的完成时间点为第三时间点t3。在分布式数据库中,每个数据节点均有各
自对应的全量备份数据。
[0061] 步骤302、确定第二时间点t2的信任分歧时间点b,其中,在第二时间点t2的信任分歧时间点b之前所有处于预备状态的事务能够在第二时间点之前被提交或回滚;
[0062] 各个数据节点可以根据所执行分支事务的预备(Prepare)时间点和提交(Commit)时间点计算分析得到该第二时间点t2的信任分歧时间点b。针对数据节点的第二时间点t2
而言的信任分歧时间点b,信任分歧时间点b之前所有处于预备(Prepare)状态的分支事务
一定能根据第二时间点t2之前的增量日志确定会被提交或回滚,而信任分歧时间点b到第
二时间点t2之间存在的处于预备(prepare)状态的分支事务则不能根据第二时间点t2之间
的增量日志确定事务最终状态。
[0063] 在一种可能的实施方式中,在步骤302中,还包括:根据第二时间点t2获取各个数据节点的增量日志;根据各个数据节点的增量日志确定多个分支事务的预备时间点和提交
时间点,并根据多个分支事务的预备时间点和提交时间点确定第二时间点的信任分歧时间
点。
[0064] 在一个示例中,根据第一数据节点的增量日志,获取第一数据节点对应的多个分支事务的预备时间点和提交时间点,挑选出预备时间点在第二时间点之前,提交时间点在
第二时间点之后的若干分支事务,并从中选取最早的预备时间点作为该信任分歧点。
[0065] 在一种可能的实施方式中,根据多个分支事务的预备时间点和提交时间点确定第二时间点的信任分歧时间点,还可以包括:根据多个分支事务的预备时间点和提交时间点
确定分支事务提交时间;获取大于预设时长的分支事务提交时间,并将对应分支事务的预
备时间点和提交时间点记入分支事务耗时表;根据分支事务耗时表确定第二时间点的信任
分歧时间点。可选地,可以在每个数据节点上维护一个分支事务耗时表,或者各数据节点共
同维护一个分支事务耗时表,用以计算得到数据节点上针对第二时间点t2的信任分歧时间
点b。
[0066] 在一种可能的实施方式中,根据分支事务耗时表确定第二时间点的信任分歧时间点,可以进一步包括:根据分支事务耗时表查找符合预设条件的事务,其中预设条件为预备
时间点在t2‑s之前且对应的提交时间点在t2之后,其中,t2为第二时间点,s为预设时长;其
中,若在分支事务耗时表中查找到符合预设条件的事务,则确定第二时间点的信任分歧时
间点为符合预设条件的分支事务耗时表中最早的预备时间点;其中,若在分支事务耗时表
中无法查找出符合预设条件的事务,则确定第二时间点的信任分歧时间点为t2‑s,其中,t2
为第二时间点,s为预设时长。可以分析获知,进入预备状态但却未提交或回滚的未决事务
仅会存在于信任分歧时间点之后。可选地,也可以采用上述符合预设条件的分支事务对应
的最早的预备时间点之前的任意一个时间点作为信任分歧时间点。
[0067] 步骤303、获取各个数据节点在第二时间点t2的信任分歧时间点b至第四时间点t4之间的第二增量日志集合,其中第四时间点t4为第三时间点t3之后的任意时间点;
[0068] 步骤304、将第二增量日志集合在第二全量备份数据上进行容错回放。
[0069] 在一种可能的实施方式中,容错回放可以包括:在回放过程中对已记录数据进行写冲突处理,忽略重复插入等操作,即避免数据被重复执行导致的不利影响。
[0070] 根据上述实施例的各个方面,可以在各数据节点的全量备份时将处于预备状态的事务记录入库,从而实现全量备份。
[0071] 在一种可能的实施方式中,基于相同的技术构思,本发明实施例还提供分布式数据库的备份装置,用于执行上述图2所提供的分布式数据库的备份方法。图4为本发明实施
例提供的一种分布式数据库的备份装置的结构示意图。
[0072] 如图4所示,装置400包括:
[0073] 第一备份单元401,用于获取分布式数据库系统的各个数据节点的全量备份数据,全量备份数据对应的全量备份时间点为第一时间点;
[0074] 第一确定单元402,用于确定第一时间点的信任分歧时间点,其中,在第一时间点的信任分歧时间点之前所有处于预备状态的事务能够在第一时间点之前被提交或回滚;
[0075] 第一获取单元403,用于获取各个数据节点在第一时间点的信任分歧时间点至第一时间点之间的第一增量日志集合,从第一增量日志集合中获取各个数据节点处于预备状
态且未被提交或回滚的未决事务;
[0076] 第一回放单元404,用于将各个数据节点的未决事务在各个数据节点的全量备份数据上进行回放。
[0077] 在一种可能的实施方式中,第一备份单元401还用于:在第一时间点对各个数据节点进行数据节点快照,并记录各个数据节点当前已经入库的数据作为全量备份数据。
[0078] 在一种可能的实施方式中,第一确定单元402还用于:根据第一时间点获取各个数据节点的增量日志;根据各个数据节点的增量日志确定多个分支事务的预备时间点和提交
时间点,并根据多个分支事务的预备时间点和提交时间点确定第一时间点的信任分歧时间
点。
[0079] 在一种可能的实施方式中,第一确定单元402还用于:根据多个分支事务的预备时间点和提交时间点确定分支事务提交时间;获取大于预设时长的分支事务提交时间,并将
对应分支事务的预备时间点和提交时间点记入分支事务耗时表;根据分支事务耗时表确定
第一时间点的信任分歧时间点。
[0080] 在一种可能的实施方式中,第一确定单元402还用于:根据分支事务耗时表查找符合预设条件的事务,其中预设条件为预备时间点在t1‑s之前且对应的提交时间点在t1之
后,其中,t1为第一时间点,s为预设时长;其中,若在分支事务耗时表中查找到符合预设条
件的事务,则从符合预设条件的分支事务中选取最早的预备时间点,作为第一时间点的信
任分歧时间点;其中,若在分支事务耗时表中无法查找出符合预设条件的事务,则确定第一
时间点的信任分歧时间点为t1‑s,其中,t1为第一时间点,s为预设时长。
[0081] 在一种可能的实施方式中,基于相同的技术构思,本发明实施例还提供另一种分布式数据库的备份装置,用于执行上述图3所提供的分布式数据库的备份方法。图5为本发
明实施例提供的一种分布式数据库的备份装置的结构示意图。
[0082] 如图5所示,装置500包括:
[0083] 第二备份单元501,用于在第二时间点对分布式数据库系统中的各个数据节点进行全量备份,以获取第二全量备份数据,且确定全量备份的完成时间点为第三时间点;
[0084] 第二确定单元502,用于确定第二时间点的信任分歧时间点,其中,在第二时间点的信任分歧时间点之前所有处于预备状态的事务能够在第二时间点之前被提交或回滚;
[0085] 第二获取单元503,用于获取各个数据节点在第二时间点的信任分歧时间点至第四时间点之间的第二增量日志集合,其中第四时间点为第三时间点之后的任意时间点;
[0086] 第二回放单元504,用于将第二增量日志集合在第二全量备份数据上进行容错回放。
[0087] 在一种可能的实施方式中,第二确定单元还用于:根据第二时间点获取各个数据节点的增量日志;根据各个数据节点的增量日志确定多个分支事务的预备时间点和提交时
间点,并根据多个分支事务的预备时间点和提交时间点确定第二时间点的信任分歧时间
点。
[0088] 在一种可能的实施方式中,第二确定单元502还用于:根据多个分支事务的预备时间点和提交时间点确定分支事务提交时间;获取大于预设时长的分支事务提交时间,并将
对应分支事务的预备时间点和提交时间点记入分支事务耗时表;根据分支事务耗时表确定
第二时间点的信任分歧时间点。
[0089] 在一种可能的实施方式中,第二确定单元502还用于:根据分支事务耗时表查找符合预设条件的事务,其中预设条件为预备时间点在t2‑s之前且对应的提交时间点在t2之
后,其中,t2为第二时间点,s为预设时长;其中,若在分支事务耗时表中查找到符合预设条
件的事务,则从符合预设条件的分支事务中选取最早的预备时间点,作为第二时间点的信
任分歧时间点;其中,若在分支事务耗时表中无法查找出符合预设条件的事务,则确定第二
时间点的信任分歧时间点为t2‑s,其中,t2为第二时间点,s为预设时长。
[0090] 在一种可能的实施方式中,第二回放单元504还用于:在回放过程中对已记录数据进行写冲突处理。
[0091] 需要说明的是,本申请实施例中的分布式数据库系统的全量备份装置可以实现前述备份分布式数据库系统的全量备份方法的实施例的各个过程,并达到相同的效果和功
能,这里不再赘述。
[0092] 图6为根据本申请一实施例的分布式数据库系统的全量备份装置,用于执行图2或图3所示出的分布式数据库系统的全量备份方法,该装置包括:至少一个处理器;以及,与至
少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指
令被至少一个处理器执行,以使至少一个处理器能够执行上述各实施例所示出的数据处理
方法。
[0093] 根据本申请的一些实施例,提供了数据处理方法的非易失性计算机存储介质,其上存储有计算机可执行指令,该计算机可执行指令设置为在由处理器运行时执行上述各实
施例所示出的分布式数据库系统的全量备份方法
[0094] 本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设
备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了
简化,相关之处可参见方法实施例的部分说明即可。
[0095] 本申请实施例提供的装置、设备和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上
面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可
读存储介质的有益技术效果。
[0096] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0097] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0098] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0099] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0100] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0101] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的
示例。
[0102] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动
态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除
可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、
数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特
定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行
这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略
某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0103] 虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能
组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和
范围内所包括的各种修改和等同布置。