一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

元数据备份恢复方法、装置、电子设备及存储介质与流程

2022-07-16 14:21:30 来源:中国专利 TAG:


1.本发明涉及分布式数据库管理系统技术领域,尤其涉及一种元数据备份恢复方法、装置、电子设备及存储介质。


背景技术:

2.分布式数据库管理系统(distributed database management system,ddbms)通常包括计算节点,存储节点和元数据节点这三类组件。元数据节点负责存储集群的元数据,包括集群拓扑结构,以及集群管理的用户数据的元数据,例如用户表定义语句等。计算节点主要负责以下工作:接受客户端连接请求,验证请求,建立连接状态;处理客户端连接发送过来的查询请求,并且返回结果给客户端;与存储节点交互完成数据读写;实现分布式事务协调器(distributedtransactioncoordinator,dtc),完成分布式事务的可靠提交。
3.当一个或多个计算节点出现异常情况,需要恢复计算节点的数据时,处理数据量较大,恢复效率较低或者操作较复杂。


技术实现要素:

4.本发明的主要目的在于提供一种元数据备份恢复方法、装置、电子设备及存储介质,可以解决分布式数据库计算节点的恢复重建问题。
5.为实现上述目的,本技术第一方面提供一种元数据备份恢复方法,所述方法包括:
6.启动所述计算节点,所述计算节点存储有元数据表,用于通过坐标数据记录所述计算节点在ddl日志中的复制位置;
7.根据所述坐标数据从元数据节点拉取所述ddl日志,执行所述ddl日志中的ddl命令以更新所述计算节点的本地元数据,以及更新所述元数据表的所述坐标数据。
8.可选地,所述坐标数据包括第一坐标,所述第一坐标用于标识所述计算节点的本地元数据的版本号,以及从所述ddl日志执行恢复操作的起始位置;
9.所述根据所述坐标数据从元数据节点拉取所述ddl日志,包括:
10.从所述元数据节点拉取自所述第一坐标开始的ddl日志。
11.可选地,所述执行所述ddl日志中的ddl命令以更新所述计算节点的本地元数据,包括:
12.根据所述ddl日志中每一种所述ddl命令的命令类型,更新所述计算节点的本地元数据。
13.可选地,所述更新所述元数据表的所述坐标数据,包括:
14.在执行所述ddl命令的所述计算节点本地事务中,基于所述计算节点在所述ddl日志中的复制位置,更新所述元数据表的所述坐标数据,以使所述元数据表中的坐标数据始终与所述计算节点中存储的元数据对应。
15.可选地,所述方法还包括:
16.在执行到所述目标时间点对应的ddl日志后,停止数据更新,完成恢复重建工作。
17.可选地,在启动所述计算节点之前,所述方法还包括:
18.获取距离目标时间点最近的全量备份;
19.使用所述全量备份恢复计算节点。
20.可选地,在所述获取距离目标时间点最近的全量备份之前,所述方法还包括:
21.根据预设备份逻辑,对所述分布式数据库管理系统中的计算节点、存储集群和元数据集群做全量的逻辑备份或者物理备份,以及增量备份。
22.为实现上述目的,本技术第二方面提供一种元数据备份恢复装置,包括:
23.启动模块,用于启动计算节点,所述计算节点存储有元数据表,用于通过坐标数据记录所述计算节点在ddl日志中的复制位置;
24.更新模块,用于根据所述坐标数据从元数据节点拉取所述ddl日志,执行所述ddl日志中的ddl命令以更新所述计算节点的本地元数据,以及更新所述元数据表的所述坐标数据。
25.可选的,所述坐标数据包括第一坐标,所述第一坐标用于标识所述计算节点的本地元数据的版本号,以及从所述ddl日志执行恢复操作的起始位置;
26.所述更新模块具体用于:
27.从所述元数据节点拉取自所述第一坐标开始的ddl日志。
28.可选的,所述更新模块具体还用于:
29.根据所述ddl日志中每一种所述ddl命令的命令类型,更新所述计算节点的本地元数据。
30.可选的,所述更新模块具体还用于:
31.在执行所述ddl命令的所述计算节点本地事务中,基于所述计算节点在所述ddl日志中的复制位置,更新所述元数据表的所述坐标数据,以使所述元数据表中的坐标数据始终与所述计算节点中存储的元数据对应。
32.可选的,所述更新模块还用于:
33.在执行到所述目标时间点对应的ddl日志后,停止数据更新,完成恢复重建工作。
34.可选的,所述元数据备份恢复装置还包括恢复模块,用于:
35.在启动所述计算节点之前,获取距离目标时间点最近的全量备份;
36.使用所述全量备份恢复计算节点。
37.本技术第三方面提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如第一方面及其任一种可能的实现方式的步骤。
38.为实现上述目的,本技术第四方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如第一方面所述的方法中的各个步骤。
39.本技术提供一种元数据备份恢复方法,应用于分布式数据库管理系统中的计算节点,通过启动所述计算节点,所述计算节点存储有元数据表,用于通过坐标数据记录所述计算节点在ddl日志中的复制位置;根据所述坐标数据从元数据节点拉取所述ddl日志,执行所述ddl日志中的ddl命令以更新所述计算节点的本地元数据,以及更新所述元数据表的所述坐标数据,利用计算节点的本地事务处理能力,可以便捷准确地实现分布式数据库计算
节点的恢复重建。
附图说明
40.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.其中:
42.图1为本技术实施例所提供的一种元数据备份恢复方法的流程示意图;
43.图2为本技术实施例所提供的另一种元数据备份恢复方法的流程示意图;
44.图3为本技术实施例所提供的一种元数据备份恢复装置的结构示意图;
45.图4为本技术实施例所提供的一种电子设备的结构示意图。
具体实施方式
46.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
48.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
49.下面结合本技术实施例中的附图对本技术实施例进行描述。
50.请参阅图1,为本技术实施例中一种元数据备份恢复方法的流程示意图,该方法可应用于分布式数据库管理系统中的计算节点。如图1所示,该方法包括:
51.101、启动计算节点,上述计算节点存储有元数据表,用于通过坐标数据记录上述计算节点在ddl日志中的复制位置;
52.102、根据上述坐标数据从元数据节点拉取上述ddl日志,执行上述ddl日志中的ddl命令以更新上述计算节点的本地元数据,以及更新上述元数据表的上述坐标数据。
53.本技术实施例中的执行主体可以为一种元数据备份恢复装置,可以为一种电子设备,具体实现中,上述电子设备可以为计算节点终端。
54.首先对ddbms进行简单介绍。ddbms通常包括计算节点,存储节点和元数据节点。背景技术已经提到,计算节点主要负责以下工作:
55.接受客户端连接请求,验证请求,建立连接状态;
56.处理客户端连接发送过来的查询请求,并且返回结果给客户端;
57.与存储节点交互完成数据读写;
58.实现分布式事务协调器(distributedtransactioncoordinator,dtc),完成分布式事务的可靠提交。
59.元数据节点负责存储集群的元数据,包括集群拓扑结构,以及集群管理的用户数据的元数据,例如用户表定义语句等。
60.而存储节点负责存储数据以及在计算节点dtc的协调之下,执行和提交分布式事务分支。并基于数据变更复制机制组成集群,来实现高可用机制。
61.ddbms执行的用户请求主要分为两类,一类称为ddl,也就是用户定义数据的存储方法(比如表,容器等)的语句;一类称为dml,也就是在已经建立好的存储单位中(比如表,容器等),读写数据的语句。
62.本技术实施例中,计算节点中存储着用户元数据,因此需要对它进行备份(backup)。这些用户元数据是在计算节点执行ddl语句而产生的。同时在执行ddl命令时,计算节点会在元数据节点中存储ddl操作日志,并且完成事务提交。在恢复重建(restore)一个分布式数据库集群时,也需要使用备份的计算节点数据来恢复若干个计算节点。
63.具体的,当需要恢复一个ddbms集群时,要依次恢复其元数据集群和每一个存储集群,最后恢复每一个计算节点。本技术实施例中可以基于预设备份对计算节点进行数据恢复,再启动这些计算节点。
64.可选的,在启动上述计算节点之前,上述方法还包括:
65.根据预设备份逻辑,对上述分布式数据库管理系统中的计算节点、存储集群和元数据集群做全量的逻辑备份或者物理备份,以及增量备份;
66.获取距离目标时间点最近的全量备份;
67.使用上述全量备份恢复计算节点。
68.本技术实施例中可以定期对ddbms集群的计算节点、存储集群和元数据集群做全量的逻辑备份或者物理备份,以及增量备份(即增量的持续的逻辑备份),并且把备份文件存储到合适的存储服务或存储设备中备用。
69.具体的,在恢复一个计算节点时,可以找到距离目标时间点t1最近的全量备份(其备份时间点记为t0),用这个备份恢复出若干个计算节点。
70.在一种可选的实施方式中,上述坐标数据包括第一坐标,上述第一坐标用于标识上述计算节点的本地元数据的版本号,以及从上述ddl日志执行恢复操作的起始位置;
71.上述根据上述坐标数据从元数据节点拉取上述ddl日志,包括:
72.从上述元数据节点拉取自上述第一坐标开始的ddl日志。
73.在一种可选的实施方式中,上述执行上述ddl日志中的ddl命令以更新上述计算节点的本地元数据,包括:
74.根据上述ddl日志中每一种上述ddl命令的命令类型,更新上述计算节点的本地元数据。
75.具体的,为了恢复一个计算节点到某一个目标时间点t1,需要使用t0(t0《=t1,并且(t0,t1]内没有计算节点的其他全量备份)时刻的全量备份重建一个计算节点,然后依次执行(t0,t1]区间内的存储在元数据集群中的ddl日志,这样就把计算节点恢复到了t1时
刻。
76.为了获得t1时刻的ddl日志,就需要对元数据集群也定期的做全量备份以及持续的流式的增量备份,以便可以使用t0时刻的全量的元数据节点备份数据以及[t0,t1]的增量备份获得t1时刻的ddl日志等元数据。
[0077]
本技术实施例中计算节点可以从元数据节点拉取ddl日志,依次执行获得的每一条ddl命令,以更新计算节点元数据。计算节点可以通过坐标数据记录其在ddl日志中的复制位置,比如每次复制到的命令位置。
[0078]
具体的,在元数据集群的ddl日志(数据表)中,有一列是一个单调递增的整数,例如1,2,3...,可以称之为logid。每一条ddl日志都有唯一的标识logid。一个计算节点执行一个ddl命令时,会向ddl日志表追加(即写到ddl日志末尾)一条ddl日志,这行数据就有了一个logid来唯一标识这个ddl命令。
[0079]
本技术实施例中,在计算节点内部的ddl_coord中存储的位置或者坐标可以理解为上述logid,它意味着这个计算节点执行到了ddl日志表中的哪一条日志。而计算节点重放ddl日志时,会在每个事务中执行一条ddl日志并且用其logid更新ddl_coord中的坐标,以便可靠地记录重放到的位置,每次继续重放则从logid 1的位置开始。
[0080]
因此可以根据上述坐标数据(即logid)从元数据节点拉取ddl日志,执行其中的ddl命令以更新计算节点的本地元数据,以及同时更新元数据表的坐标数据。
[0081]
其中,启动恢复的计算节点后,此时计算节点的元数据表ddl_coord中记录的第一坐标ddl0正是该计算节点本地元数据的版本号(可以理解为时间点),也是它应该从ddl日志中继续重放日志的位置。进而计算节点可以从元数据节点拉取自ddl0开始的ddl日志,依次执行获得的每一条ddl命令,并且执行命令的方法是根据每一种命令类型更新计算节点元数据。不需要向存储集群发送ddl命令,也不需要再次向元数据集群发送ddl日志。
[0082]
在一种可选的实施方式中,上述更新上述元数据表的上述坐标数据,包括:
[0083]
在执行上述ddl命令的上述计算节点本地事务中,基于上述计算节点在上述ddl日志中的复制位置,更新上述元数据表的上述坐标数据,以使上述元数据表中的坐标数据始终与上述计算节点中存储的元数据对应。
[0084]
具体的,在执行ddl命令的计算节点本地事务中,更新元数据表ddl_coord的坐标数据,这样在每一个ddl事务提交后,元数据表ddl_coord中的坐标始终与计算节点中实际存储的元数据完全对应。如果恢复操作因为任何原因中断,那么随后可以继续从中断位置继续恢复。
[0085]
在一种可选的实施方式中,在上述步骤102之后,该方法还包括:
[0086]
在执行到上述目标时间点对应的ddl日志后,停止数据更新,完成恢复重建工作。
[0087]
具体的,当执行到目标时间点t1对应的ddl日志后,元数据表ddl_coord中记录的坐标也到达了ddl1。每条ddl日志都带有时间戳,记录了执行该ddl操作的准确时间点。这个时间点相当于是所有计算节点公认的集群数据版本号。因此通过t1时间点可以在ddl日志中找到恢复过程的停止点。恢复到该停止点就完成了恢复重建工作。此时计算节点的元数据就与存储节点的用户数据对齐到了相同的版本。
[0088]
本技术实施例中的元数据备份恢复方法,应用于分布式数据库管理系统中的计算节点,通过启动所述计算节点,所述计算节点存储有元数据表,用于通过坐标数据记录所述
计算节点在ddl日志中的复制位置;根据所述坐标数据从元数据节点拉取所述ddl日志,执行所述ddl日志中的ddl命令以更新所述计算节点的本地元数据,以及更新所述元数据表的所述坐标数据,利用计算节点的本地事务处理能力,可以便捷准确地实现分布式数据库计算节点的恢复重建。
[0089]
请参阅图2,为本技术实施例提供的另一种元数据备份恢复方法的流程示意图。如图2所示,以恢复集群到目标时间点t1举例,依次恢复其元数据集群和每一个存储集群,最后恢复每一个计算节点。
[0090]
需要使用到t0(t0《=t1)时刻的全量备份,以及[t0,t1]增量数据变更备份,以恢复其元数据集群到t1时刻;
[0091]
使用计算节点的全量备份生成t0时刻的计算节点(此时计算节点ddl_coord中记录坐标ddl0为该计算节点本地元数据的版本号(时间点),也是从ddl日志中继续重放日志的位置);
[0092]
在ddl_coord中记录的坐标时间点ddl0小于t1时间点,从ddl日志中获取自ddl0开始的ddl日志,并依次执行获得的每一条ddl命令,同时启动本地事务,更新ddl_coord的坐标数据,以使ddl_coord中的坐标始终与计算节点中实际存储的元数据完全对应;直到执行到t1时间点对应的ddl日志(此时ddl_coord中记录的坐标时间点ddl1为t1时间点)停止。
[0093]
当前业内除了昆仑数据库之外,其他分布式数据库系统并没有在计算节点中实现本地事务处理,也不支持在计算节点存储元数据,也没有元数据节点或者没有在元数据节点存储ddl操作日志用于重放(replay)ddl。本技术实施例中的方法是使用ddl操作日志恢复重建(restore)一个计算节点到最新的状态。在计算节点中维护一个元数据表ddl_coord来记录计算节点在ddl日志中的复制到的位置,也就是执行到了ddl日志中的哪一条语句,这个位置也是恢复过程开始执行ddl操作日志的起始点。
[0094]
本技术实施例中使用计算节点的本地事务处理能力,实现了数据恢复(restore)过程的容错能力,无论恢复过程因为任何原因中断了,都可以从中断位置继续恢复。并且,使用元数据表ddl_coord记录计算节点元数据对应于ddl的操作日志,确保了计算节点元数据与ddl操作日志的一一对应关系,从而可以在恢复过程中从准确的起点开始恢复,确保集群整体的数据一致性。另外使用ddl操作日志做增量恢复,不需要使用计算节点的本地事务日志做增量恢复。使用了ddl操作日志才可以准确地确定要恢复到的时间点对应的集群数据版本,从而可以让恢复过程准确地停止到准确的位置和数据版本。
[0095]
基于上述元数据备份恢复方法实施例的描述,本技术实施例还公开了一种元数据备份恢复装置,请参见图3,该元数据备份恢复装置300包括:
[0096]
启动模块310,用于启动计算节点,所述计算节点存储有元数据表,用于通过坐标数据记录所述计算节点在ddl日志中的复制位置;
[0097]
更新模块320,用于根据所述坐标数据从元数据节点拉取所述ddl日志,执行所述ddl日志中的ddl命令以更新所述计算节点的本地元数据,以及更新所述元数据表的所述坐标数据。
[0098]
可选的,所述坐标数据包括第一坐标,所述第一坐标用于标识所述计算节点的本地元数据的版本号,以及从所述ddl日志执行恢复操作的起始位置;
[0099]
所述更新模块320具体用于:
[0100]
从所述元数据节点拉取自所述第一坐标开始的ddl日志。
[0101]
可选的,所述更新模块320具体还用于:
[0102]
根据所述ddl日志中每一种所述ddl命令的命令类型,更新所述计算节点的本地元数据。
[0103]
可选的,所述更新模块320具体还用于:
[0104]
在执行所述ddl命令的所述计算节点本地事务中,基于所述计算节点在所述ddl日志中的复制位置,更新所述元数据表的所述坐标数据,以使所述元数据表中的坐标数据始终与所述计算节点中存储的元数据对应。
[0105]
可选的,所述更新模块320还用于:
[0106]
在执行到所述目标时间点对应的ddl日志后,停止数据更新,完成恢复重建工作。
[0107]
可选的,在启动所述计算节点之前,系统可以根据预设备份逻辑,对所述分布式数据库管理系统中的计算节点、存储集群和元数据集群做全量的逻辑备份或者物理备份,以及增量备份;
[0108]
上述元数据备份恢复装置300还包括恢复模块330,用于:
[0109]
获取距离目标时间点最近的全量备份;
[0110]
使用所述全量备份恢复计算节点。
[0111]
可以理解的是,涉及到图3中的各个模块的相关内容在前述方法实施例中已经进行详细描述,具体可以参阅方法实施例中的内容,此处不做赘述。
[0112]
本技术实施例中的元数据备份恢复装置300,元数据备份恢复装置300可以通过启动所述计算节点,所述计算节点存储有元数据表,用于通过坐标数据记录所述计算节点在ddl日志中的复制位置;根据所述坐标数据从元数据节点拉取所述ddl日志,执行所述ddl日志中的ddl命令以更新所述计算节点的本地元数据,以及更新所述元数据表的所述坐标数据,利用计算节点的本地事务处理能力,可以便捷准确地实现分布式数据库计算节点的恢复重建。
[0113]
在本技术的一个实施例中,还提出了一种电子设备。请参见图4,图4为本技术实施例提供的一种电子设备的结构示意图。如图4所示,该电子设备400包括处理器401和存储器402,所述存储器402存储有计算机程序,所述计算机程序被所述处理器401执行时,将执行如图1-图2所示上述方法实施例中的任意步骤。
[0114]
在一个实施例中,还提出了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器401执行时,使得所述处理器401执行上述方法实施例中的任意步骤。
[0115]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram
(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0116]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0117]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献