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

云备份链数据备份、管理方法及装置、设备、可读介质与流程

2021-10-24 06:15:00 来源:中国专利 TAG:介质 数据备份 备份 装置 可读


1.本发明涉及数据库领域,具体涉及一种云备份链数据备份、管理方法及装置、设备、可读介质。


背景技术:

2.数据备份是指为防止出现操作失误或系统故障导致数据丢失,而将部分或全部数据集合从某一设备的存储介质复制到其他的存储介质的过程。
3.为了减少备份数据以及备份时间,现有的备份方案大多都是首次对数据进行全量备份,后续备份采用増量备份的形势,这样备份保存的数据都是前一次备份之后变化的数据。当备份文件数量较多,需要删除中间的备份时,可以将待删除备份的文件,与待删除备份的子备份的文件进行合并,再将该待备份文件删除,以减小中间备份的数量,实现存储空间的释放。
4.上述方案中,待删除备份的文件与子备份的文件在实现数据合并的效率较低。


技术实现要素:

5.本技术提供了一种云备份链数据备份、管理方法及装置、设备、可读介质,提高了数据备份的合并效率,该技术方案如下。
6.一方面,提供了一种云备份链数据备份方法,所述方法包括:
7.获取父备份数据,以及所述父备份数据对应的子备份数据;
8.当需要删除所述父备份数据时,将所述父备份数据中的数据与所述子备份数据中的数据进行对比,确定所述父备份数据中各个数据的数据类型,所述数据类型包括被所述子备份数据更改的数据以及未被所述子备份数据更改的数据;
9.基于所述数据类型将所述父备份数据中的所述数据更新至所述子备份数据中,得到更新后的子备份数据。
10.又一方面,提供了一种云备份链数据管理方法,其特征在于,所述方法包括:
11.终端发送删除备份点请求至云服务器;
12.所述云服务器接收到所述删除备份点请求后,在云服务器中的云存储中检索待删除备份点对应的元数据对象,并将其标记为待删除状态,
13.所述云服务器通过云端服务守护进程定期扫描所述云存储中的元数据对象,并对带有所述待删除状态标记的元数据对象对应的待删除备份点实施删除;
14.待下一启动周期时,云端服务守护进程继续对下一个带有待删除标记的元数据对象对应的待删除备份点实施删除。
15.又一方面,提供了一种云备份链数据备份装置,所述装置包括:
16.备份数据获取模块,用于获取父备份数据,以及所述父备份数据对应的子备份数据;
17.数据类型确定模块,用于当需要删除所述父备份数据时,将所述父备份数据中的
数据与所述子备份数据中的数据进行对比,确定所述父备份数据中各个数据的数据类型,所述数据类型包括被所述子备份数据更改的数据以及未被所述子备份数据更改的数据;
18.数据更新模块,用于基于所述数据类型将所述父备份数据中的所述数据更新至所述子备份数据中,得到更新后的子备份数据。
19.在一种可能的实现方式中,所述数据类型获取模块,包括:
20.更新位置获取单元,用于获取所述父备份数据中各个数据对应的第一数据更新位置,以及所述子备份数据中各个数据对应的第二数据更新位置;
21.数据类型获取单元,用于将所述第一数据更新位置与所述第二数据更新位置进行对比,确定所述父备份数据中各个数据的数据类型。
22.在一种可能的实现方式中,获取所述父备份数据对应的第一位置序列,以及所述第一位置序列中各个位置对应的位图数据;所述第一位置序列用于指示在所述数据库中,所述父备份数据更新的数据段;
23.将所述第一位置序列中位图数据为1的位置序列确定为第一増量序列,并根据第一増量序列的序列顺序确定所述父备份数据中各个数据对应的第一数据更新位置;
24.获取所述子备份数据对应的第二位置序列,以及所述第二位置序列中各个位置对应的位图数据;所述第二位置序列用于指示在所述数据库中,所述子备份数据更新的数据段;
25.将所述第二位置序列中位图数据为1的位置序列确定为第二増量序列,并根据第二増量序列的序列顺序,确定所述子备份数据中各个数据对应的第二数据更新位置。
26.在一种可能的实现方式中,所述数据更新模块,包括:
27.数据删除单元,用于将所述父备份数据的被所述子备份数据更改的数据删除,获得第一更新数据;
28.数据合并单元,用于将所述第一更新数据与所述子备份数据进行合并,获得更新后的子备份数据。
29.在一种可能的实现方式中,所述备份数据中包含由所述数据构成的数据对象;
30.所述数据删除单元,还用于,
31.将所述父备份数据中的数据对象中,由被所述子备份数据更改的数据构成的数据对象删除,获得第一更新数据。
32.在一种可能的实现方式中,所述数据更新单元,包括以下至少一者:
33.数据合并子单元,用于将所述第一更新数据中的数据对象中,包含被所述子备份数据更改的数据以及未被所述子备份数据更改的数据的数据对象,与所述子备份数据的数据对象合并,获得更新后的子备份数据的数据对象;
34.数据获取子单元,用于将所述第一更新数据中的数据对象中,由未被所述子备份数据更改的数据构成的数据对象获取为更新后的子备份数据的数据对象。
35.在一种可能的实现方式中,所述数据获取子单元,还用于,
36.所述将所述第一更新数据中的数据对象中,包含被所述子备份数据更改的数据以及未被所述子备份数据更改的数据的数据对象,与所述子备份数据的数据对象合并,获得合并数据对象;
37.当所述合并数据对象的数据数量大于第一阈值,将所述合并数据对象拆分为至少
两个更新后的子备份数据的数据对象。
38.又一方面,提供了一种云备份链数据管理装置,所述装置包括:
39.备份点发送模块,用于指示终端发送删除备份点请求至云服务器;
40.删除点标记模块,用于指示所述云服务器接收到所述删除备份点请求后,在所述云服务器中的云存储中检索待删除备份点对应的元数据对象,并将其标记为待删除状态;
41.第一备份删除模块,用于指示所述云服务器通过云端服务守护进程定期扫描所述云存储中的元数据对象,并对带有所述待删除状态标记的元数据对象对应的待删除备份点实施删除;
42.第二删除备份模块,用于待下一启动周期时,指示所述云端服务守护进程继续对下一个带有所述待删除标记的元数据对象对应的所述待删除备份点实施删除。
43.其中,所述第一备份删除模块,还包括:
44.备份点数据删除单元,用于将所述待删除备份点的数据与下一备份点的数据进行合并,删除所述待删除备份点数据,并删除所述待删除备份点对应的元数据对象;
45.元数据对象更新单元,用于将所述待删除备点的父节点更新为所述下一备份点的父节点,更新元数据对象。
46.在一种可能的实现方式中,所述备份点数据删除单元,还用于,
47.获取父备份数据,以及所述父备份数据对应的子备份数据;所述父备份数据是所述待删除备份点的数据;所述子备份数据是所述待删除备份点的下一备份点的数据;
48.当需要删除所述父备份数据时,将所述父备份数据中的数据与所述子备份数据中的数据进行对比,确定所述父备份数据中各个数据的数据类型,所述数据类型包括被所述子备份数据更改的数据以及未被所述子备份数据更改的数据;
49.基于所述数据类型将所述父备份数据中的所述数据更新至所述子备份数据中,得到更新后的子备份数据,并删除所述待删除备份点对应的元数据对象,
50.将所述待删除备点的父节点更新为所述下一备份点的父节点,更新元数据对象。
51.再一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述的云备份链数据备份方法;
52.或者,所述至少一条指令由所述处理器加载并执行上述的云备份链数据管理方法。
53.再一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的云备份链数据备份方法;
54.或者,所述至少一条指令由所述处理器加载并执行上述的云备份链数据管理方法。
55.又一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质中读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述的云备份链数据备份方法或云备份链数据管理方法。
56.有益效果
57.当需要删除具有子备份数据的父备份数据时,可以先将父备份数据中的数据与子
备份数据之间的数据进行对比,确定父备份数据中各个数据是否被子备份数据更改,并将父备份数据中的各个数据分类为被子备份数据更改的数据和未被子备份数据更改的数据,再将父备份数据中各个数据的类型,将父备份数据中的各个数据更新到子备份数据中,从而在将父备份数据与子备份数据的合并过程中,考虑到了子备份数据与父备份数据之间的关系,提高了子备份数据与父备份数据的合并效率。
附图说明
58.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
59.图1是根据一示例性实施例示出的一种云备份链数据备份系统的结构示意图;
60.图2是根据一示例性实施例示出的一种云备份链数据备份方法的方法流程图;
61.图3示出了图2所示实施例涉及的一种云备份链数据备份示意图;
62.图4是根据一示例性实施例示出的一种云备份链数据备份方法的方法流程图;
63.图5示出了图4所示实施例涉及的一种云备份链数据备份示意图;
64.图6示出了图4所示实施例涉及的一种数据更新位置确定示意图;
65.图7示出了图4所示实施例涉及的一种数据对象删除方法示意图;
66.图8示出了图4所示实施例涉及的一种数据对象合并示意图;
67.图9是根据一示例性实施例示出的一种云备份链数据备份方法的流程框图;
68.图10示出了图9所示实施例涉及的一种快照数据分割示意图;
69.图11示出了图9所示实施例涉及的一种増量备份数据上传示意图;
70.图12示出了图9所示实施例涉及的一种合并数据示意图;
71.图13是根据一示例性实施例示出的一种云备份链数据管理方法的方法流程图;
72.图14是根据一示例性实施例示出的一种云备份链数据备份装置的结构方框图;
73.图15是根据一示例性实施例示出的一种云备份链数据管理装置的结构方框图;
74.图16示出了本技术一示例性实施例示出的计算机设备的结构框图。
具体实施方式
75.下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
76.应理解,在本技术的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,a指示b,可以表示a直接指示b,例如b可以通过a获取;也可以表示a间接指示b,例如a指示c,b可以通过c获取;还可以表示a和b之间具有关联关系。
77.在本技术实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
78.本技术实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本技术对于其具体的实现方式不做限定。
79.为更好的理解本发明的技术方案和技术效果,先对本发明中涉及的几个技术特征进行概括定义。
80.首先,本发明中对于父备份数据和子备份数据的定义如下,所述父备份数据是基于第一数据库快照以及第二数据库快照获取的増量数据,且该第二数据库快照的生成时间在该第一数据库快照的生成时间之后,此时该父备份数据可以将与第一数据库快照的状态对应的数据库,更新为与第二数据库快照的状态对应的数据库。同理,所述子备份数据是基于第二数据库快照以及第三数据库快照获取的増量数据,该子备份数据可以将与第二数据库快照的状态对应的数据库,更新为与第三数据库快照的状态对应的数据库。
81.其次,本发明中,关于第一数据更新位置和第二数据更新位置的识别方法如下:
82.对存储卷从头看是按照定长进行划分成若干块数据块,并对划分好的数据块从头到尾按照最小为0向上递增的方式标记数据块块号;对于每一个数据块建立一个bitmap用于记录数据块上对应数据的有效性信息,1表示有效,0表示无效,而在这里对于有效的定义为:将子备份数据节点下恢复的全数据与父备份数据节点下恢复的全数据进行对比,每一个数据块中发生数据变更的数据对应的位图标记为1,没有变更的数据对应的位图标记为0。
83.如图12中所示的三个定长的数据块f1、s1和s2,其中f1、s1和s2分别是在第一、第二、第三数据备份节点下恢复的全数据中截取出来的同一块号的一个数据块,比如f1里4个位置(即第一位置序列)上的数据全部为增量数据,即全部发生了变更,那这4个位置上的数据的位图信息全部标记为1(即形成第一增量序列),在本实施方式中,通过以下的方式来对其进行表示0,3[1,1,1,1],即为元数据,将数据块s1和f1进行比较,位置1、3的数据发生了改变,位图标记为1,记为1,3,[1,0,1],将数据块s2和s1进行比较,位置0、1的数据发生了改变,位图标记为1,记为0,1[1,1],这里的元数据即表示了每一次增量备份数据的标识信息,其中前面两位表示增量数据的起始位置信息,[]中表示对应增量数据的位图信息,位图信息为1的对应数据位的数据表示保存在增量备份数据中,比如这里的1,3,[1,0,1]表示位置1、3的数据为保存到增量备份中的数据,0,3[1,1,1,1]则表示位置0、1、2、3的数据为保存到增量备份中的数据。
[0084]
因此,在本发明中,通过位图信息的方式识别父备份数据、子备份数据中第一数据更新位置、第二数据更新位置。
[0085]
图1是根据一示例性实施例示出的一种云备份链数据备份系统的结构示意图。该系统包括终端120以及云服务器110。
[0086]
该终端120,用于向该云服务器110发送用于指示删除父备份数据的第一删除请求。
[0087]
该云服务器110,用于响应于接收到所述第一删除请求,获取父备份数据,以及该父备份数据对应的子备份数据;
[0088]
该云服务器110,用于当需要删除该父备份数据时,将该父备份数据中的数据与该子备份数据中的数据进行对比,确定该父备份数据中各个数据的数据类型,该数据类型包
括被该子备份数据更改的数据以及未被该子备份数据更改的数据;
[0089]
该云服务器110,用于基于该数据类型将该父备份数据中的该数据更新至该子备份数据中,得到更新后的子备份数据。
[0090]
在一种可能的实现方式中,该云服务器接收到第一删除请求后,根据第一删除请求,将该父备份数据标记为待删除状态,并向该终端返回用于指示父备份数据删除成功的指示信息。
[0091]
即当用户或者云服务器的管理人员需要删除云服务器中存储的父备份数据时,可以通过终端向云服务器发送第一删除请求,当云服务器接收到第一删除请求后,将第一删除请求对应的父备份数据标记为待删除状态,以便后续对该父备份数据执行删除操作。当云服务器成功将该父备份数据标记为待删除状态后,向终端发送指示父备份数据删除成功的指示信息。
[0092]
即终端接收到云服务器返回的指示父备份数据删除成功的指示消息时,云服务器中可能实际上并未完成对该父备份数据的删除过程,但云服务器已经开始执行删除流程,在未出现不可预估的错误的前提下,该父备份数据在一定时间后可以被删除,因此可以提前通知终端,云服务器已经完成了删除父备份数据的操作,减小了终端与云服务器之间的无效通信连接时间。
[0093]
在另一种可能的实现方式中,云服务器响应于得到更新后的子备份数据,向该终端返回用于指示父备份数据删除成功的指示信息。
[0094]
即该云服务器还可以,在成功删除父备份数据,并将该父备份数据合并至子备份数据之后,向该终端返回用于指示父备份数据删除成功的指示信息,以便通知终端该父备份数据已经成功删除,可以继续执行其他操作。
[0095]
在一种可能的实现方式中,该终端中存在按时间顺序排列的各个数据库快照,根据连续两个数据库快照,获取该终端对应的备份数据,并将该备份数据发送至云服务器。
[0096]
即对于终端与云服务器构成的云备份链数据备份系统而言,当终端需要对数据库进行备份时,可以获取该终端的数据库快照,并根据连续两个数据库快照,该终端对应的増量数据,并发送至云服务器,以记录该终端的数据库的变化情况。
[0097]
可选的,该终端可以是具有数据处理功能以及数据存储功能的终端设备,该终端可以包括一个终端,也可以包括多个终端,本技术实施例对该终端的数量不设限制。该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等具有数据处理器以及数据存储组件的终端设备,但不局限于此。该终端中的数据处理器,可以对该数据存储组件在两个不同时间段的数据库快照进行处理,以获得该终端对应的増量备份数据。
[0098]
可选的,该云服务器可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础运计算服务的云服务器。
[0099]
可选的,该云服务器中可以包含具有数据存储功能的云存储组件、以及具有数据处理功能的云计算组件;当该云服务器接受到该第一删除请求,对父备份数据进行删除时,可以通过云计算组件对父备份数据与子备份数据进行数据处理,以获得更新后的子备份数据,并将更新后的子备份数据保存至该云存储组件中。
[0100]
可选的,该云服务器110与该终端120之间可以通过通信网络相连。可选的,该通信
网络可以是有线网络或无线网络。
[0101]
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网,但也可以是其他任何网络,包括但不限于局域网、城域网、广域网、移动、有限或无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言、可扩展标记语言等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层、传输层安全、虚拟专用网络、网际协议安全等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
[0102]
图2是根据一示例性实施例示出的一种云备份链数据备份方法的方法流程图。该方法由云服务器执行,该云服务器设备可以是如图1中所示的云服务器110。如图2所示,该用于云备份链数据备份方法可以包括如下步骤:
[0103]
步骤201,获取父备份数据,以及该父备份数据对应的子备份数据。
[0104]
可选的,该父备份数据用于对数据库进行备份还原,该子备份数据用于对基于父备份数据更新过后的数据进行备份还原。
[0105]
因此,当数据库需要通过子备份数据进行备份还原时,需要按照顺序,先通过父备份数据进行备份还原,再通过父备份数据对应的子备份数据进行备份还原。
[0106]
请参考图3,其示出了本技术实施例涉及的一种云备份链数据备份示意图。如图3所示,当在第一时间点第一次获取数据库的快照时,可以通过全量获取的方式,获取第一备份数据301,其中,第一备份数据301中包含了该数据库在第一时间点的全部数据。当在第二时间点再次获取数据库的快照时,可以根据第二时间点获取到的数据库快照以及第一时间点的数据库快照之间的差异,获取第二备份数据302,且该第二备份数据302包含了数据库在第一时间点与第二时间点之间的差异数据,以及差异数据对应的位置。同理,当在第三时间点再次获取数据库的快照时,可以根据第三时间点获取到的数据库快照以及第二时间点的数据库快照之间的差异,获得第三备份数据303,且该第三备份数据303包含了数据库在第二时间点与第三时间点之间的差异数据,以及差异数据对应的位置。
[0107]
因此由图3可以看出,当需要更新到第一时间点对应的数据库时,通过第一备份数据301就可以直接确定在第一时间点,数据库对应的数据状态;而当需要更新到第二时间点对应的数据库时,通过第一时间点对应的数据库,以及第二备份数据中指示的数据库在第一时间点与第二时间点的差异,可以确定数据库在第二时间点的数据,以便将该数据库还原至第二时间点。同理,当数据库更新到第二时间点对应的数据库状态后,还可以根据第三备份数据303中指示的,数据库在第二时间点与第三时间点之间的差异,更新到第三时间点对应的数据库状态。且在上述过程中,第二备份数据的更新依赖于第一备份数据更新得到的第一时间点的数据库;第三备份数据的更新依赖于第二备份数据更新得到的第二时间点的数据库,因此可以人为第一备份数据是第二备份数据的父备份数据;且第二备份数据是第三备份数据的父备份数据。
[0108]
步骤202,当需要删除该父备份数据时,将该父备份数据中的数据与该子备份数据中的数据进行对比,确定该父备份数据中各个数据的数据类型。
[0109]
其中,该数据类型包括被该子备份数据更改的数据以及未被该子备份数据更改的数据。
[0110]
当需要删除父备份数据时,为了避免删除父备份数据所导致数据库无法还原至子备份数据对应的数据库状态时,需要先对待删除的父备份数据进行处理。在本技术实施例的一种可能的实现方式中,在删除父备份数据之前,可以先将父备份数据中的数据与子备份数据中的数据进行对比,以确定父备份数据中,哪些数据被子备份数据再次更改过,哪些数据未被再次更改过。
[0111]
对于父备份数据中,已经被子备份数据更改过的数据来说,在数据库依次通过父备份数据与子备份数据,更新至子备份数据对应的状态的过程中,该父备份数据中已经被子备份数据更改过的数据,对数据库进行更新后的结果,仍然会在子备份数据的更新过程中被再次更新,因此被子备份数据更改过的数据,在父备份数据中的重要性较小;而对于未被子备份数据更改过的数据来说,在数据库依次通过父备份数据与子备份数据,更新至子备份数据对应的状态的过程中,该父备份数据中的未被子备份数据更改过的数据,对数据库进行更新后的结果,并不会在子备份数据的更新过程中被再次更新,因此该被子备份数据更改过的数据,在父备份数据中的重要性较大。
[0112]
步骤203,基于该数据类型将该父备份数据中的该数据更新至该子备份数据中,得到更新后的子备份数据。
[0113]
由步骤202可知,当数据类型不同时,即对于被子备份数据更改过的数据,以及未被子备份数据更改过的数据,在数据库依次通过父备份数据与子备份数据,更新至子备份数据对应的状态的过程中,所占据的重要程度不同,因此可以对不同数据类型的数据,采取不同的数据处理方式,以实现父备份数据的删除以及子备份数据的更新过程。
[0114]
综上所述,在本技术实施例所示方案中,当需要删除具有子备份数据的父备份数据时,可以先将父备份数据中的数据与子备份数据之间的数据进行对比,确定父备份数据中各个数据是否被子备份数据更改,并将父备份数据中的各个数据分类为被子备份数据更改的数据和未被子备份数据更改的数据,再将父备份数据中各个数据的类型,将父备份数据中的各个数据更新到子备份数据中,从而在将父备份数据与子备份数据的合并过程中,考虑到了子备份数据与父备份数据之间的关系,提高了子备份数据与父备份数据的合并效率。
[0115]
图4是根据一示例性实施例示出的一种云备份链数据备份方法的方法流程图。该方法由云服务器执行,该云服务器设备可以是如图1中所示的云服务器110。如图4所示,该用于云备份链数据备份方法可以包括如下步骤:
[0116]
步骤401,获取父备份数据,以及该父备份数据对应的子备份数据。
[0117]
可选的,该父备份数据是终端根据第一时间点的数据库快照与第二时间点的数据库快照,对比后获得的増量数据;该子备份数据是终端根据第二时间点的数据库快照与第三时间点的数据库快照,对比后获得的増量数据;该第一时间点的时间顺序先于第二时间点;该第二时间点的时间顺序先与第三时间点。
[0118]
可选的,该父备份数据可以是根据终端根据第一时间点的数据库快照构建的原始备份数据,该子备份数据是终端根据第一时间点的数据库快照以及第二时间点的数据库快照,对比后获得的増量数据。
[0119]
步骤402,当需要删除该父备份数据时,将该父备份数据中的数据与该子备份数据中的数据进行对比,确定该父备份数据中各个数据的数据类型。
[0120]
其中,该数据类型包括被该子备份数据更改的数据以及未被该子备份数据更改的数据。
[0121]
在云数据库中,通过步骤401所示的増量备份方式,可以极大的减小备份数据的数据量,但当备份数据的备份数量较多时,仍然会占据较大的存储空间,因此可以通过删除备份的方式释放部分存储空间。当需要删除父备份数据时,可以先通过父备份数据中各个数据的类型,确定如何对该父备份数据进行处理。
[0122]
请参考图5,其示出了本技术实施例涉及的一种数据类型示意图。如图5所示,对于父备份数据501,其中包含更新位置分别为0、3、4、6、7的数据,以便更新数据库中位置为上述位置的各个数据;同理,对于子备份数据502,其中包含更新位置分别为0、2、5、6、7的数据,以便更新数据库中位置为上述位置的各个数据,此时父备份数据中,位置为0、6和7的三个数据可以被定义为被子备份数据更改的数据,父备份数据中,位置为3和4的两个数据可以被定义为未被子备份数据更改的数据。
[0123]
例如,当通过父备份数据对数据库510进行更新时,可以分别将0、3、4、6、7位置的数据更新,以获得父备份数据对应的更新数据库511;再通过子备份数据对父备份数据对应的更新数据库511进行更新时,可以分别再将0、2、5、6、7位置的数据进行更新,以获得子备份数据对应的更新数据库512。将数据库510与子备份数据对应的更新数据库512对比可知,位置6和7的数据是根据子备份数据中的位置6和7的数据更新得到的,因此父备份数据中,被子备份数据更改的数据,在连续的更新过程中的意义较小。
[0124]
在一种可能的实现方式中,获取所述父备份数据中各个数据对应的第一数据更新位置,以及所述子备份数据中各个数据对应的第二数据更新位置;将所述第一数据更新位置与所述第二数据更新位置进行对比,确定所述父备份数据中各个数据的数据类型。
[0125]
其中,该第一数据更新位置,用于指示父备份数据中各个数据在数据库更新过程中的更新位置;该第二数据更新位置用于指示子备份数据中各个数据在数据库更新过程中的更新位置。
[0126]
在一种可能的实现方式中,将父备份数据中,与该第一数据更新位置与第二数据更新位置的重复位置对应的数据,确定为被子备份数据更改的数据;将父备份数据中,与该第一数据更新位置与第二数据更新位置中重复位置之外的位置对应的数据,确定为未被子备份数据更改的数据。
[0127]
当父备份数据的各个数据中,存在某个数据对应的数据更新位置与子备份数据中数据的更新位置相同时,说明该数据在子备份数据中被指示需要再次更新,因此该数据在父备份数据中可以被确定为被子备份数据更改的数据;当父备份数据中的各个数据中,存在并未出现在子备份数据的各个数据对应的数据更新位置时,说明该数据在子备份数据中并未被再次更新,因此该数据在父备份数据中可以被确定为父备份数据更改的数据。
[0128]
在一种可能的实现方式中,根据该父备份数据对应的第一位置序列,确定该父备份数据的各个数据对应的第一数据更新位置;根据该子备份数据中的各个数据对应的第二位置序列,确定该子备份数据的各个数据对应的数据更新位置。
[0129]
其中,该父备份数据对应的第一位置序列,可以用于指示该父备份数据中的各个数据在数据库中对应的数据更新位置;该子备份数据对应的第二位置序列,可以用于指示该子备份数据中的各个数据在数据库中对应的数据更新位置。如图3中所示第三备份数据
303,该第三备份数据303中数据块中的[1]和[0]分别是第三备份数据中的数据,而第三备份数据303对应的(0,7),即为该第三备份数据对应的位置序列,该位置序列可以指示该第三备份数据中数据1对应的数据更新位置为0,该第三备份数据中数据0对应的数据更新位置为7。
[0130]
在一种具体的实现方式中,根据该父备份数据对应的第三位置序列,以及第三位置序列对应的位图集合,确定该父备份数据的各个数据对应的数据更新位置;根据该子备份数据中的各个数据对应的第四位置序列,以及该第四位置序列对应的位图集合,确定该子备份数据的各个数据对应的数据更新位置。
[0131]
其中,该第三位置序列对应的位图集合中,包含与第三位置序列中的各个位置分别对应的位图数据;该第四位置序列对应的位图集合中,包含与第四位置序列中的各个位置分别对应的位图数据。该位图数据用于指示与位图数据对应的位置的数据的有效性。
[0132]
在一种可能的实现方式中,将该第三位置序列中,位图数据为1的数据确定为有效序列,表示该位置对应的数据发生了改变,属于该节点下的增量备份数据,并根据序列顺序,与父备份数据之间的顺序进行一一对应,获得该父辈数据中各个数据对应的更新位置。
[0133]
即第三位置序列保存的是某一段数据的数据序列时,该第三位置序列对应的位图(bitmap)可以用于指示该第三位置序列中有效的序列,并将父备份数据按照顺序,一一与该有效序列对应,获得该父备份数据的各个数据的数据更新位置。
[0134]
请参考图6,其示出了本技术实施例涉及的一种数据更新位置确定示意图。如图6所示,对于父备份数据600来说,其中包含父备份数据中的各个数据601,以及该父备份数据对应的位置序列602,以及该位置序列对应的位图集合603。由于该父备份数据对应的位置序列602指示该父备份数据对应的位置为(1,2,3,4),且位图集合为1001,因此根据位置序列与位图集合的对应关系可知,该位置序列中有效序列为1和4,因此根据有效序列,可以得知父备份数据中的各个数据601中,数据5对应的更新位置为数据库610中的位置1,数据6对应的更新位置为数据库中的位置4。
[0135]
步骤303,将该父备份数据的被该子备份数据更改的数据删除,获得第一更新数据。
[0136]
由于父备份数据中的被子备份数据更改的数据,会在后续的备份还原过程中继续被子备份数据更改,因此可以先将该被子备份数据更改的数据删除,以提前释放部分内存,加快云服务器的存储的释放速度。
[0137]
在一种可能的实现方式中,该备份数据中包含由该数据构成的数据对象;将该父备份数据中的数据对象中,由被该子备份数据更改的数据构成的数据对象删除,获得第一更新数据。
[0138]
在数据库中,备份数据可以存储于包含多个数据的数据对象中,在备份数据的数据对象可以存储多个数据,并作为数据库中的一种数据存储方式。
[0139]
当数据库中的备份数据包含数据对象时,即父备份数据中也可以包含各个数据对象,当父备份数据的各个数据对象中,存在由被子备份数据更改的数据构成的数据对象时,可以先将该由子备份数据更改的数据构成的数据对象删除,以提前释放部分内存。
[0140]
请参考图7,其示出了本技术实施例涉及的一种数据对象删除方法示意图。如图7所示,父备份数据700中可能存在至少两种不同状态的数据对象,其中,数据对象701由被子
备份数据710更改的数据(0,1位置对应的数据均会被子备份数据701再次更改)构成,数据对象702中包含不被子备份数据710更改的数据(2位置的数据不会被子备份数据701更改)。此时,对于包含不被子备份数据710更改的数据的数据对象702,其中存在的不被子备份数据710更改的数据,直接删除时,备份数据的缺失可能会导致数据库无法恢复到需要恢复的状态,此时,可以先将由被子备份数据710更改的数据构成的数据对象701删除,以实现在不影响备份还原结果的前提下,提前释放部分内存。
[0141]
在另一种可能的实现方式中,当数据库中的备份数据包含数据对象时,且该数据对象中包含被子备份数据更改的数据时,直接将该被子备份数据更改的数据删除,获得新的数据对象,并根据各个新的数据对象获得第一更新数据。
[0142]
步骤304,将该第一更新数据与该子备份数据进行合并,获得更新后的子备份数据。
[0143]
由于第一更新数据中存在子备份数据未更新的数据,因此需要将第一更新数据中的数据信息,合并至子备份数据中,以便实现数据库可以正常通过子备份数据还原至子备份数据对应的数据库状态。
[0144]
在一种可能的实现方式中,将该第一更新数据中的数据对象中,包含被该子备份数据更改的数据以及未被该子备份数据更改的数据的数据对象,与该子备份数据的数据对象合并,获得更新后的子备份数据的数据对象;将该第一更新数据中的数据对象中,由未被该子备份数据更改的数据构成的数据对象获取为更新后的子备份数据的数据对象。
[0145]
当父备份数据以及子备份数据均通过数据对象来存储数据时,第一更新数据中的数据对象可能也存在两种类型,即全部由未被该子备份数据更改的数据构成的数据对象,以及由未被该子备份数据更改的数据以及被子备份数据更改的数据共同构成的数据对象。
[0146]
对于全部由未被该子备份数据更改的数据构成的数据对象而言,其中各个数据均未被子备份数据再次更改,即该各个数据对数据库的更改操作都是不可丢失的,因此可以直接将该由未被该子备份数据更改的数据构成的数据对象,获取为更新后的子备份数据的数据对象。
[0147]
而对于由未被该子备份数据更改的数据以及被子备份数据更改的数据共同构成的数据对象而言,其中既存在需要丢弃的,被子备份数据更改的数据;也存在不能被丢弃的,未被该子备份数据更改的数据,因此可以将该由未被该子备份数据更改的数据以及被子备份数据更改的数据共同构成的数据对象,与子备份中的数据对象进行合并操作,并获取为更新后的子备份数据的数据对象,以构成更新后的子备份数据。
[0148]
请参考图8,其示出了本技术实施例涉及的一种数据对象合并示意图。如图8所示,对于第一更新数据800而言,其中包含了全部由未被该子备份数据更改的数据构成的数据对象(以下称为第一数据对象801),以及由未被该子备份数据更改的数据以及被子备份数据更改的数据共同构成的数据对象(以下称为第二数据对象802)。对于第一数据对象801而言,其可以直接获取为更新后的子备份数据820的数据对象821。而对于第二数据对象802而言,其被子备份数据810中的数据对象811更改了一部分,因此可以将第一备份数据中更改的一部分删除,并将剩余部分合并入数据对象811中,得到更新后的子备份数据中的数据对象822;子备份数据中的剩余部分直接获取为更新后的子备份数据820中的数据对象823。此时,可以认为完成了将父备份数据与子备份数据合并的过程。
[0149]
在一种可能的实现方式中,将该第一更新数据中的数据对象中,包含被该子备份数据更改的数据以及未被该子备份数据更改的数据的数据对象,与该子备份数据的数据对象合并,获得合并数据对象;当该合并数据对象的数据数量大于第一阈值,将该合并数据对象拆分为至少两个更新后的子备份数据的数据对象。
[0150]
当第一更新数据中,通过子备份数据的数据对象与父备份数据的数据对象合并得到的数据数量大于第一阈值时(例如数据数量大于5时),可以将该合并数据对象拆分为至少两个更新后的子备份数据,且拆分后得到的更新后的子备份数据的数据对象的数据数量小于第一阈值即可。
[0151]
综上所述,在本技术实施例所示方案中,当需要删除具有子备份数据的父备份数据时,可以先将父备份数据中的数据与子备份数据之间的数据进行对比,确定父备份数据中各个数据是否被子备份数据更改,并将父备份数据中的各个数据分类为被子备份数据更改的数据和未被子备份数据更改的数据,再将父备份数据中各个数据的类型,将父备份数据中的各个数据更新到子备份数据中,从而在将父备份数据与子备份数据的合并过程中,考虑到了子备份数据与父备份数据之间的关系,提高了子备份数据与父备份数据的合并效率。
[0152]
图9是根据一示例性实施例示出的一种云备份链数据备份方法的流程框图,该方法可以由图1所示的云备份链数据备份系统中的终端120以及云服务器110执行。如图9所示,该云备份链数据备份方法可以包括如下步骤。
[0153]
s901,备份数据上传。
[0154]
在本技术实施例涉及的云备份链数据备份系统中包含终端以及云服务器,终端可以通过客户端对虚拟机的数据卷做快照(以获得数据库快照),并将根据数据库快照之间的差异得到的増量备份发送至云服务器,以便云服务器接受到客户端发送的増量备份并保存至云存储中。
[0155]
在一种可能的实现方式中,该快照可以被分割并存储至一个个数据对象中。图10示出了本技术实施例涉及的一种快照数据分割示意图。
[0156]
根据一定顺序(例如栈的编号)对数据库中1001从头开始按定长开始进行划分(例如64kb大小),并对划分好的块按照一定顺序标记为块号;
[0157]
连续读取若干个数据块1002(即数据对象,例如可以取总长度为1m的数据对象),同时创建一个bitmap用于记录这些数据块上是否有数据(例如标记为1的为有效数据,标记为0的则为无效数据)。
[0158]
s902,备份数据上传。
[0159]
将bitmap与数据块和对应块号(即数据对象对应的位置序列)组合成数据包,通过网络上传至云服务器进行存储。请参考图11,其示出了本技术实施例涉及的一种増量备份数据上传示意图。如图11所示,终端中的数据库在不同状态下分别生产快照1以及快照2,且终端根据如图10所示的操作,对基于快照1以及快照2生成的増量备份数据1101进行分割保存,并生成对应的位图以及元数据用于标记该増量备份数据1101的位置以及状态,以便上传至云服务器1110。
[0160]
s903,终端向云端发送删除请求。
[0161]
当需要删除某一备份数据时,且该备份数据存在子备份数据时,该备份客户端发
送删除备份点的请求给云服务器,云服务器接收到该请求后,在云存储中检索该备份点对于的元数据对象,并将该元数据标记为待删除状态,当该待删除标记成功后将删除成功的信息发送至终端,此时终端接收到删除成功的信息,并删除本地数据库中的该备份点的信息;当该待删除标记未成功,则返回删除失败给终端,以告知终端,云端的备份数据删除失败。
[0162]
s904,云端执行删除备份数据流程。
[0163]
云服务器中可以运行有开机自启动守护进程scrub线程,以定期检索云服务器中存储的元数据,对标记为待删除状态的备份点进行删除,scrub进程删除备份点的过程,即为将待删除备份数据合并至下一个子备份数据中。
[0164]
该待删除备份数据的删除过程可以包括以下步骤。
[0165]
1.删除该备份数据(即父备份数据)不被子备份数据引用的数据对象,使得云端空间能快速释放。其中,备份数据的元数据中还保存有bitmap来记录每个数据对象中是否是该备份点有效的新数据,通过比较该备份数据和它的子备份数据对应的bitmap信息可以确定该数据对象是否被引用。
[0166]
例如,当父备份数据中的某一数据对象中的数据,都是被子备份数据更改的数据,可以认为该数据对象是不被子备份数据引用的数据对象。即当父备份数据的某一数据对象中的各个数据,都需要在子备份数据更新时被再次更改,因此子备份数据的更新并不依赖该父备份数据中的该数据对象,因此可以将该数据对象确定为不被子备份数据引用的数据对象。
[0167]
2.将待删除备份数据(即父备份数据)中被子备份数据引用的数据对象合并至子备份数据的数据对象(如果合并后的新数据对象过大,例如大于2mb时,则将其拆分为两个数据对象),更新子备份数据对应的元数据,删除待删除备份数据中被合并的数据对象。
[0168]
3.当待删除备份数据所有被应用的数据对象合并完成后,更新该子备份数据的父节点为待删除备份的父备份数据。
[0169]
4.当云端服务重启后,scrub进程会自启动,继续删除标记为待删除状态的备份数据。
[0170]
请参考图12,其示出了本技术实施例涉及的一种合并数据示意图。其中,合并数据对象的过程可以如下所示。
[0171]
第一次做了全量备份f1,对应在云端的元数据中保存这次备份有两个segment(元数据块),该两个元数据块为(f1_seg_0,f2_seg_1),每个元数据块描述一个云端的数据对象,它记录了该数据对象中包含数据的起始块和结束块(即起始数据的位置以及结束数据的位置),以及描述这段数据中有增量数据的bitmap(位图)。
[0172]
第二次备份s1的时候第1和3个chunk(数据块)修改了,所以增量备份了这两个chunk到云端,s1_seg_0描述了保存的云端数据对象3中的增量数据,起始chunk号为1,结束chunk号为3,bitmap中的[1,0,1]表示第1个和第3个chunk的数据保存在数据对象3中。
[0173]
第三次备份s2的时候第0和1个chunk修改了,云端保存了新的元数据s2_seg_0和数据对象4.
[0174]
现在要删除中间的备份点s1,过程如下:
[0175]
1.首先找到s1在云端中的元数据,元数据中包含所有segment的信息,按起始块递
增排序处理所有数据对象,s1只有一个s1_seg_0。
[0176]
2.找到s1的子备份点s2以及它的元数据信息,s2只有一个s2_seg_0。
[0177]
3.将s1的segment s1_seg_0中bitmap表中为1,但是对应的chunk在s2的segment s2_seg_0中bitmap表中为0或者不存在的bits合并,生成新的segment s2_seg_0_new元数据,它描述的是从chunk 0到3,有效的chunk是0,1,3。按照s2_seg_0_new的描述合并数据对象3和数据对象4中的chunk,得到新的数据对象4_new。
[0178]
4.将合并好后新的数据对象4_new上传回云端。
[0179]
5.将合并好后s2新的元数据块s2_seg_0_new上传回云端。
[0180]
6.删除s2的数据对象4。
[0181]
7.删除s1的数据对象3。
[0182]
8.更新s1的元数据,删除其中的segment s1_seg_0,上传回云端。
[0183]
9.按步骤3至8循环处理s1的所有segments,当其所有segments都被处理后,更新子备份点s2的元数据,将s2的父节点更新为f1。
[0184]
10.删除s1的元数据,删除备份点s1完成。
[0185]
通过上述方案,在删除备份点后云端存储空间占有量会下降,并且支持删除任意备份点,不影响其他备份点的使用。客户端在收到删除备份点成功后可以继续删除其他的备份点。
[0186]
图13是根据一示例性实施例示出的一种云备份链数据管理方法的方法流程图,该方法可以由图1所示的云备份链数据备份系统中的终端120以及云服务器110共同执行,该方法包括:
[0187]
s1301,终端发送删除备份点请求至云服务器。
[0188]
可选的,在本技术实施例中,备份点用于指示该云服务器中存储的各个备份数据。例如,备份点中可以包含备份数据以及备份数据对应的备份标识,例如当某一备份点中存储有备份数据以及数值为3的备份标识,则可以说明该备份数据是序号为3的备份数据。
[0189]
s1302,该云服务器接收到该删除备份点请求后,在云服务器中的云存储中检索待删除备份点对应的元数据对象,并将其标记为待删除状态。
[0190]
可选的,该云服务器接收到该删除备份点请求后,根据该删除备份点请求中包含的备份标识,在云服务器存储的各个备份点中,确定与该删除备份点请求对应的备份点,并将其的元数据对象标记为待删除状态。
[0191]
例如,当云服务器接收到待删除备份点请求时,并确定了与该待删除备份点请求对应的备份点后,对其元数据对象进行标记(例如修改该元数据对象的状态信息为待删除,或者给该元数据对象增加删除标记)。
[0192]
s1303,该云服务器通过云端服务守护进程定期扫描该云存储中的元数据对象,并对该带有该待删除状态标记的元数据对象对应的待删除备份点实施删除。
[0193]
s1304,待下一启动周期时,云端服务守护进程继续对下一个带有待删除标记的元数据对象对应的待删除备份点实施删除。
[0194]
在一种可能的实现方式中,对带有删除标记的元数据对象对应的待删除备份点实施删除,可以通过如下方式实施:
[0195]
将该待删除备份点的数据与下一备份点的数据进行合并,删除该待删除备份点数
据,并删除该待删除备份点对应的元数据对象;
[0196]
将该待删除备点的父节点更新为该下一备份点的父节点,更新元数据对象。
[0197]
上述元数据对象以及父节点的删除过程可以参考图12对应的实施例所示内容,此处不再赘述。
[0198]
在一种可能的实现方式中,将该待删除备份点的数据与下一备份点的数据进行合并,删除该待删除备份点的数据,并删除该待删除备份点对应的元数据对象,可以通过如下方式实施:
[0199]
获取父备份数据,以及该父备份数据对应的子备份数据;该父备份数据是该待删除备份点的数据;该子备份数据是该待删除备份点的下一备份点的数据;
[0200]
当需要删除该父备份数据时,将该父备份数据中的数据与该子备份数据中的数据进行对比,确定该父备份数据中各个数据的数据类型,该数据类型包括被该子备份数据更改的数据以及未被该子备份数据更改的数据;
[0201]
基于该数据类型将该父备份数据中的该数据更新至该子备份数据中,得到更新后的子备份数据,并删除该待删除备份点对应的元数据对象,
[0202]
将该待删除备点的父节点更新为该下一备份点的父节点,更新元数据对象。
[0203]
其中,上述待删除备份点的删除过程可以参考图2、图4及图9任一所示的实施例中记载的备份点删除过程,此处不再赘述。
[0204]
综上所述,在本技术实施例所示方案中,当需要删除具有子备份数据的父备份数据时,可以先将父备份数据中的数据与子备份数据之间的数据进行对比,确定父备份数据中各个数据是否被子备份数据更改,并将父备份数据中的各个数据分类为被子备份数据更改的数据和未被子备份数据更改的数据,再将父备份数据中各个数据的类型,将父备份数据中的各个数据更新到子备份数据中,从而在将父备份数据与子备份数据的合并过程中,考虑到了子备份数据与父备份数据之间的关系,提高了子备份数据与父备份数据的合并效率。
[0205]
并且,在图13所示实施例中,备份客户端发送删除备份点的请求给云端服务,云端服务收到该请求后,在云存储中检索该备份点对应的元数据对象,将该元数据标记为待删除状态,只要待删除状态标记成功就返回成功给客户端,客户端删除本地数据库中该备份点的信息,删除备份点成功;否则返回失败给客户端,备份点删除失败。即当删除标记成功后,客户端就认为该备份点已经删除成功,当云端在后台执行备份点删除操作时,客户端无需等待删除备份点完成后就可以对其他备份点执行删除或恢复等操作,提高了客户端的运行效率。
[0206]
图14是根据一示例性实施例示出的一种云备份链数据备份装置的结构方框图。该云备份链数据备份装置包括:
[0207]
备份数据获取模块1401,用于获取父备份数据,以及所述父备份数据对应的子备份数据;
[0208]
数据类型确定模块1402,用于当需要删除所述父备份数据时,将所述父备份数据中的数据与所述子备份数据中的数据进行对比,确定所述父备份数据中各个数据的数据类型,所述数据类型包括被所述子备份数据更改的数据以及未被所述子备份数据更改的数据;
[0209]
数据更新模块1403,用于基于所述数据类型将所述父备份数据中的所述数据更新至所述子备份数据中,得到更新后的子备份数据。
[0210]
在一种可能的实现方式中,所述数据类型获取模块,包括:
[0211]
更新位置获取单元,用于获取所述父备份数据中各个数据对应的第一数据更新位置,以及所述子备份数据中各个数据对应的第二数据更新位置;
[0212]
数据类型获取单元,用于将所述第一数据更新位置与所述第二数据更新位置进行对比,确定所述父备份数据中各个数据的数据类型。
[0213]
在一种可能的实现方式中,所述数据更新模块,包括:
[0214]
数据删除单元,用于将所述父备份数据的被所述子备份数据更改的数据删除,获得第一更新数据;
[0215]
数据合并单元,用于将所述第一更新数据与所述子备份数据进行合并,获得更新后的子备份数据。
[0216]
在一种可能的实现方式中,所述备份数据中包含由所述数据构成的数据对象;
[0217]
所述数据删除单元,还用于,
[0218]
将所述父备份数据中的数据对象中,由被所述子备份数据更改的数据构成的数据对象删除,获得第一更新数据。
[0219]
在一种可能的实现方式中,所述数据更新单元,包括以下至少一者:
[0220]
数据合并子单元,用于将所述第一更新数据中的数据对象中,包含被所述子备份数据更改的数据以及未被所述子备份数据更改的数据的数据对象,与所述子备份数据的数据对象合并,获得更新后的子备份数据的数据对象;
[0221]
数据获取子单元,用于将所述第一更新数据中的数据对象中,由未被所述子备份数据更改的数据构成的数据对象获取为更新后的子备份数据的数据对象。
[0222]
在一种可能的实现方式中,所述数据获取子单元,还用于,
[0223]
所述将所述第一更新数据中的数据对象中,包含被所述子备份数据更改的数据以及未被所述子备份数据更改的数据的数据对象,与所述子备份数据的数据对象合并,获得合并数据对象;
[0224]
当所述合并数据对象的数据数量大于第一阈值,将所述合并数据对象拆分为至少两个更新后的子备份数据的数据对象。
[0225]
综上所述,在本技术实施例所示方案中,当需要删除具有子备份数据的父备份数据时,可以先将父备份数据中的数据与子备份数据之间的数据进行对比,确定父备份数据中各个数据是否被子备份数据更改,并将父备份数据中的各个数据分类为被子备份数据更改的数据和未被子备份数据更改的数据,再将父备份数据中各个数据的类型,将父备份数据中的各个数据更新到子备份数据中,从而在将父备份数据与子备份数据的合并过程中,考虑到了子备份数据与父备份数据之间的关系,提高了子备份数据与父备份数据的合并效率。
[0226]
图15是根据一示例性实施例示出的一种云备份链数据管理装置的结构方框图。该云备份链数据管理装置包括:
[0227]
备份点发送模块1501,用于指示终端发送删除备份点请求至云服务器;
[0228]
删除点标记模块1502,用于指示所述云服务器接收到所述删除备份点请求后,在
所述云服务器中的云存储中检索待删除备份点对应的元数据对象,并将其标记为待删除状态。
[0229]
第一备份删除模块1503,用于指示所述云服务器通过云端服务守护进程定期扫描所述云存储中的元数据对象,并对带有所述待删除状态标记的元数据对象对应的待删除备份点实施删除;
[0230]
第二删除备份模块1504,用于待下一启动周期时,指示所述云端服务守护进程继续对下一个带有所述待删除标记的元数据对象对应的所述待删除备份点实施删除。
[0231]
其中,所述第一备份删除模块,还包括:
[0232]
备份点数据删除单元,用于将所述待删除备份点的数据与下一备份点的数据进行合并,删除所述待删除备份点数据,并删除所述待删除备份点对应的元数据对象;
[0233]
元数据对象更新单元,用于将所述待删除备点的父节点更新为所述下一备份点的父节点,更新元数据对象。
[0234]
在一种可能的实现方式中,所述备份点数据删除单元,还用于,
[0235]
获取父备份数据,以及所述父备份数据对应的子备份数据;所述父备份数据是所述待删除备份点的数据;所述子备份数据是所述待删除备份点的下一备份点的数据;
[0236]
当需要删除所述父备份数据时,将所述父备份数据中的数据与所述子备份数据中的数据进行对比,确定所述父备份数据中各个数据的数据类型,所述数据类型包括被所述子备份数据更改的数据以及未被所述子备份数据更改的数据;
[0237]
基于所述数据类型将所述父备份数据中的所述数据更新至所述子备份数据中,得到更新后的子备份数据,并删除所述待删除备份点对应的元数据对象,
[0238]
将所述待删除备点的父节点更新为所述下一备份点的父节点,更新元数据对象。
[0239]
综上所述,当需要删除具有子备份数据的父备份数据时,可以先将父备份数据中的数据与子备份数据之间的数据进行对比,确定父备份数据中各个数据是否被子备份数据更改,并将父备份数据中的各个数据分类为被子备份数据更改的数据和未被子备份数据更改的数据,再将父备份数据中各个数据的类型,将父备份数据中的各个数据更新到子备份数据中,从而在将父备份数据与子备份数据的合并过程中,考虑到了子备份数据与父备份数据之间的关系,提高了子备份数据与父备份数据的合并效率。
[0240]
并且,在图15所示实施例中,基于与图13所示实施例相同的理由,客户端无需等待删除备份点完成后就可以对其他备份点执行删除或恢复等操作,提高了客户端的运行效率。
[0241]
图16是本技术一示例性实施例示出的计算机设备1600的结构框图。该计算机设备可以实现为本技术上述方案中的终端或服务器。所述计算机设备1600包括中央处理单元(central processing unit,cpu)1601、包括随机存取存储器(random access memory,ram)1602和只读存储器(read

only memory,rom)1603的系统存储器1604,以及连接系统存储器1604和中央处理单元1601的系统总线1605。所述计算机设备1600还包括用于存储操作系统1609、应用程序1610和其他程序模块1611的大容量存储设备1606。
[0242]
所述大容量存储设备1606通过连接到系统总线1605的大容量存储控制器(未示出)连接到中央处理单元1601。所述大容量存储设备1606及其相关联的计算机可读介质为计算机设备1600提供非易失性存储。也就是说,所述大容量存储设备1606可以包括诸如硬
盘或者只读光盘(compact disc read

only memory,cd

rom)驱动器之类的计算机可读介质(未示出)。
[0243]
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、可擦除可编程只读寄存器(erasable programmable read only memory,eprom)、电子抹除式可复写只读存储器(electrically

erasable programmable read

only memory,eeprom)闪存或其他固态存储其技术,cd

rom、数字多功能光盘(digital versatile disc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1604和大容量存储设备1606可以统称为存储器。
[0244]
根据本公开的各种实施例,所述计算机设备1600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1600可以通过连接在所述系统总线1605上的网络接口单元1607连接到网络1608,或者说,也可以使用网络接口单元1607来连接到其他类型的网络或远程计算机系统(未示出)。
[0245]
所述存储器还包括至少一条计算机程序,所述至少一条计算机程序存储于存储器中,中央处理器1601通过执行该至少一条计算机程序来实现上述各个实施例所示的方法中的全部或部分步骤。
[0246]
在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read

only memory,cd

rom)、磁带、软盘和光数据存储设备等。
[0247]
在一示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2、图4、图9与图13任一实施例所示方法的全部或部分步骤。
[0248]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
[0249]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜