CN102929976B - 备份数据访问方法及装置 - Google Patents
备份数据访问方法及装置 Download PDFInfo
- Publication number
- CN102929976B CN102929976B CN201210394177.5A CN201210394177A CN102929976B CN 102929976 B CN102929976 B CN 102929976B CN 201210394177 A CN201210394177 A CN 201210394177A CN 102929976 B CN102929976 B CN 102929976B
- Authority
- CN
- China
- Prior art keywords
- moment
- index
- data block
- field
- backup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提供一种备份数据访问方法及装置。方法包括:获取要访问的目标时刻和要访问的备份数据对应的数据块编号;在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻;若所述第一时刻等于所述目标时刻,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。本发明将不同时刻的备份索引文件中对应同一数据块的索引项关联起来,提高了访问速度。
Description
技术领域
本发明涉及数据存储技术,尤其涉及一种备份数据访问方法及装置。
背景技术
备份技术是指将电脑的数据拷贝归档,这样,当出现数据丢失或破坏的情况时,就可以使用备份的数据进行恢复。备份的操作是由一个备份系统来完成的,一个典型的备份系统一般由两种角色组成:受保护的服务器和备份服务器。受保护的服务器上存储了需要进行备份的数据,这些数据会被拷贝到备份服务器,由备份服务器进行统一的归档管理。因为受保护的数据一般都会处于不断改变中,所以需要备份系统周期地进行备份操作,以便及时对新增加的数据进行备份。而周期性的备份,可以有两种方式来进行:一种是每次都把完整的数据镜像拷贝到备份服务器,称为全备份;一种是每次只拷贝针对上一次备份时修改过的数据,称为增量备份。
现有的增量备份在保存数据时,会将数据以及数据对应的索引都保存下来。但是,某一时刻的索引,只能索引该时刻和上一时刻之间改变过的数据块内容,其它数据信息是保存在之前的备份文件中的。当访问某一时刻的备份数据时,先依据索引结构构建出一个该时刻完整的数据索引表,具体方法为:先创建一个空的数据索引表,然后把该时刻的增量备份索引文件插入到空表中,接着再从最新到最旧依次遍历该时刻之前的增量备份索引文件,如果遇到构建的数据索引表中没有的索引项,就把该索引项插入到构建的数据索引表中,遍历完就构建完成了数据索引表。这样,当要访问该时刻的某一数据块的备份数据时,可以先在已构建好的该时刻的数据索引表中查找,如果查找到该数据块的索引项,就利用查找到的索引项访问对应时刻的数据块,如果未查找到索引项,就直接到全备份文件中找到对应的数据块。
但是,上述方案在每次访问时均需遍历要访问时刻之前所有的备份索引文件以构建该要访问时刻对应的数据索引表,导致访问速度较慢。
发明内容
本发明实施例提供一种备份数据访问方法及装置,用以解决现有方案中每次访问时均需遍历要访问时刻之前所有的备份索引文件以构建该要访问时刻对应的数据索引表导致访问速度较慢的问题。
本发明的第一个方面是提供一种备份数据访问方法,包括:
获取要访问的目标时刻和要访问的备份数据对应的数据块编号;
在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻,所述第一时刻为除所述全备份时刻之外对所述数据块编号对应的数据块进行备份的一个时刻;
若所述第一时刻等于所述目标时刻,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;所述第一索引偏移为所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的索引偏移;
根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
本发明的第二个方面是提供一种备份数据访问装置,包括:
获取模块,用于获取要访问的目标时刻和要访问的备份数据对应的数据块编号;
第一查找模块,用于在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻,所述第一时刻为除所述全备份时刻之外对所述数据块编号对应的数据块进行备份的一个时刻;
第二查找模块,用于若所述第一时刻等于所述目标时刻,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;所述第一索引偏移为所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移;
第三查找模块,用于所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
上述多个技术方案中的一个至少具有如下技术效果:
本发明实施例通过在备份索引文件的与数据块对应的各索引项中添加时刻字段和索引偏移字段,该时刻字段和索引偏移字段指向对对应数据块进行备份的另一时刻的备份文件索引,将不同时刻的备份索引文件中对应同一数据块的索引项关联起来,使得根据要访问备份数据对应的数据块编号即可遍历不同备份索引文件中对应同一数据块的索引项,无需遍历要访问时刻之前所有的备份索引文件并临时构建一个数据索引表,提高了访问速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种备份数据访问方法的流程示意图;
图2为现有技术中全备份索引文件和全备份数据文件的格式示意图;
图3为本发明实施例中全备份索引文件和全备份数据文件的格式示意图;
图4为本发明实施例的全备份过程中对数据块N进行备份的流程示意图;
图5为本发明实施例中的增量备份过程中对数据块N进行备份的流程示意图;
图6为本发明实施例中全备份文件和增量备份文件的一种关联示意图;
图7为本发明实施例提供的一种备份数据访问方法的应用流程图;
图8为本发明实施例提供的一种备份数据访问装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种备份数据访问方法的流程示意图。如图1所示,包括:
101、获取要访问的目标时刻和要访问的备份数据对应的数据块编号。
具体来说,本发明实施例提供的备份数据访问装置获取要访问的目标时刻和要访问的备份数据对应的数据块编号。通常,要访问的备份数据保存在备份服务器的存储系统中,受保护的服务器和备份服务器的存储系统均对数据信息采用分层次的管理,主要的层次有文件系统、卷、磁盘等。在对某个卷进行备份时,受保护的服务器中源卷上的数据信息按照同样的大小被分成一个个的数据块(Cluster),每个Cluster对应一个编号。当把源卷上的数据备份到备份服务器时,也是按照Cluster为单位进行保存,每一个Cluster的数据对应到源卷上的对应Cluster。
具体地,可以根据要访问的文件名称,由文件系统程序映射得到存储对应文件的数据块编号。
102、在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻,所述第一时刻为除所述全备份时刻之外对所述数据块编号对应的数据块进行备份的一个时刻。
通常备份流程一开始,就会做一次全备份,即对所有数据块进行备份,全备份是后续增量备份的基准。需要说明的是,每次增量备份仅针对此次增量备份的时刻和上一次备份的时刻之间有修改的数据块,这里的上一次备份可以是全备份也可以是增量备份。
具体地,无论是全备份还是增量备份,每次备份时均会构建对应此次备份时刻的备份索引文件和备份数据文件。全备份的备份索引文件和备份数据文件也称为全备份索引文件和全备份数据文件,增量备份的备份索引文件和备份数据文件也称为增量备份索引文件和增量备份数据文件。
图2为现有技术中全备份索引文件和全备份数据文件的格式示意图。如图2所示,现有技术中,全备份索引文件中包括各数据块(DataBlock)对应的索引项,每个数据块对应的索引项包括数据偏移(DataOffset)字段,该字段的值为该数据块在全备份数据文件中的偏移;全备份数据文件包括按照数据块编号(如Cluster1、Cluster2、……)顺序保存的各数据块。
图3为本发明实施例中全备份索引文件和全备份数据文件的格式示意图。如图3所示,本发明实施例中的全备份数据文件与图2所示的现有技术中全备份数据文件类似。不同的是,本发明实施例中全备份索引文件的各数据块对应的索引项,除了包括数据偏移字段,还包括时刻(Period)字段和索引偏移(IndexOffset)字段,需要说明的是,本发明实施例中增量备份索引文件的各索引项也包含时刻字段和索引偏移字段,具体地,时刻字段和索引偏移字段用于将对同一数据块进行了备份的各备份时刻的备份索引文件中该数据块对应的索引项关联起来。举例来说,对编号为2的数据块Cluster2进行了备份的时刻有:全备份时刻Period1,增量备份时刻Period2、Period5,而Period2、Period5之间的Period3和Period4的增量备份中不涉及Cluster2,因此,Period2、Period5的增量备份索引文件中包含Cluster2对应的索引项,而Period3和Period4的增量备份索引文件中不包含Cluster2对应的索引项。
103、若所述第一时刻等于所述目标时刻,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;所述第一索引偏移为所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的索引偏移。
目标时刻(TargetPeriod)可以是访问者输入的任意时刻,也可以是访问者在备份时刻列表中选择的任一时刻。应用中,为了实现简单,可以限制访问者只能在所有备份时刻中选择一个目标时刻。这里,备份时刻包括全备份的时刻和每次增量备份的时刻。
104、根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
参照图2和图3可知,本发明实施例中的全备份数据文件的格式与现有技术中的全备份数据文件类似。而本发明实施例中的增量备份数据文件的格式也与图2、图3中的全备份数据文件类似,也就是说,每个时刻的增量备份索引文件的某个数据块对应的索引项中数据偏移字段的值,为该数据块在同一时刻的增量备份数据文件中的偏移。
进一步地,102之前还可以包括:判断所述目标时刻是否在所述全备份时刻之后,若是则执行102,若否则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值,根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
具体地,全备份时刻保存在全备份索引文件的头信息中(图3中未示出)。目标时刻不在所述全备份时刻之后,包括目标时刻等于全备份时刻、目标时刻在全备份时刻之前两种情况。
进一步地,在101之前包括对所有数据块进行全备份的步骤,具体地,在所述全备份时刻进行全备份时,构建所述全备份数据文件和全备份索引文件,所述全备份索引文件包括所述数据块编号对应的索引项,所述数据块编号对应的索引项包括时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为对应数据块在所述全备份数据文件中的偏移;
所述数据块编号对应的索引项中的时刻字段、索引偏移字段均为空,或者,所述数据块编号对应的索引项中的时刻字段、索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的索引偏移。
相应地,若全备份索引文件中某个数据块对应的索引项中时刻字段为空,或时刻字段的值分别为所述全备份时刻,则说明在全备份之后未对该数据块进行过增量备份,因此,若要访问该数据块,则在所述全备份索引文件中查找对应的索引项中数据偏移字段的值,根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
图4为本发明实施例的全备份过程中对数据块N进行备份的流程示意图。以数据块N为例,全备份过程中对该数据块进行备份的流程包括:
401、将全备份索引文件中数据块N对应的索引项中的Period字段赋值为全备份时刻;
402、将全备份索引文件中数据块N对应的索引项中的IndexOffset字段赋值为数据块N对应的索引项在全备份索引文件中的偏移;
403、保存数据块N到全备份数据文件中,将全备份索引文件中数据块N对应的索引项中的DataOffset字段赋值为数据块N在全备份数据文件中的偏移。
需要说明的是,401、402中也可以将数据块N对应的索引项中的Period字段、IndexOffset字段置为空。全备份过程中,需要对每个数据块进行备份,对每个数据块的备份均可以参照图4所示的流程。
进一步地,在全备份之后进行增量备份,假设有多次增量备份均包括对数据块N的备份,则需要在每次对数据块N的增量备份时,设置此次增量备份索引文件中该数据块N对应的索引项中的Period字段、IndexOffset字段的值,并更改之前至少一次备份的备份索引文件中该数据块N对应的索引项中Period字段、IndexOffset字段的值以指向此次增量备份,使数据块N对应的所有索引项通过Period字段、IndexOffset字段关联起来。
相应地,102之后还可以包括:
若所述第一时刻在所述目标时刻之后,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
查找所述第一索引偏移对应的索引项中时刻字段的第二时刻,所述第二备份时刻为除所述第一时刻、全备份时刻之外的对所述数据块编号对应的数据块进行备份的一个时刻;
若所述第二时刻等于所述目标时刻,则根据所述第一索引偏移对应的索引项中索引偏移字段的第二索引偏移,查找所述第二时刻的备份索引文件中所述第二索引偏移对应的索引项;
根据所述第二索引偏移对应的索引项中数据偏移字段的值,在所述第二时刻的备份数据文件中查找对应的数据块。
需要说明的是,现有技术在每次访问时均需遍历要访问时刻之前所有的备份索引表以构建该要访问时刻对应的数据索引表,要访问时刻越往后,即要访问的备份数据越新,则需要遍历的备份索引文件越多,遍历时间越场,导致对新的备份数据的访问速度越慢。而在备份时,新的数据相比老的数据通常更有效一些,因此为了进一步地提高对新的备份数据的访问速度,在本发明的一个可选的实施例中,保持全备份索引文件的各索引项中时刻字段和索引偏移字段指向对应数据块的最近一次备份。相应地,所述第一时刻为最近一次对所述数据块编号对应的数据块进行备份的时刻;102之后还包括:
若所述目标时刻在所述第一时刻之后,则查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
进一步地,为了各索引项中时刻字段和索引偏移字段之间的指向更有序,可以将其保持为与对应的备份时刻的从后到前的顺序一致。具体地,所述第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;
所述查找所述第一索引偏移对应的索引项中时刻字段的第二时刻之后,还包括:
若所述目标时刻在所述第二时刻之后,则查找所述第二时刻的备份索引文件中所述第二索引偏移对应的索引项;
根据所述第二索引偏移对应的索引项中数据偏移字段的值,在所述第二时刻的备份数据文件中查找对应的数据块。
相应地,在每次增量备份时也要相应地设置此次备份索引文件中的时刻字段和索引偏移字段的值以及相应地更改之前的备份索引文件中的时刻字段和索引偏移字段的值,接下来以第一时刻的增量备份为例进行说明。具体地,在所述全备份时刻进行全备份之后,还包括:
在所述第一时刻对所述数据块进行增量备份,构建所述第一时刻的备份索引文件和备份数据文件。
若在所述第一时刻对所述数据块的增量备份为所述全备份时刻之后第一次对所述数据块的增量备份;所述构建所述第一时刻的备份索引文件,具体包括:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
若在所述第一时刻对所述数据块的增量备份不为所述全备份时刻之后第一次对所述数据块的增量备份,所述第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;所述构建所述第一时刻的增量备份索引文件,具体包括:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段分别为第二时刻和所述数据块编号对应的索引项在所述第二时刻的备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
图5为本发明实施例中的增量备份过程中对数据块N进行备份的流程示意图。以数据块N为例,增量备份过程中对该数据块进行备份的流程包括:
501、将全备份索引文件中数据块N对应的索引项中的Period字段的值赋给本次增量备份索引文件中数据块N对应的索引项中的Period字段;
502、将全备份索引文件中数据块N对应的索引项中的IndexOffset字段的值赋给本次增量备份索引文件中数据块N对应的索引项中的IndexOffset字段;
503、更新全备份索引文件中数据块N对应的索引项中的Period字段的值为本次增量备份的时刻;
504、更新全备份索引文件中数据块N对应的索引项中的IndexOffset字段的值为数据块N对应的索引项在本次增量备份索引文件中的偏移;
505、保存新的数据块N到本次增量备份数据文件中,并将本次增量备份索引文件中数据块N对应的索引项中的DataOffset字段赋值为新的数据块N在本次增量备份数据文件中的偏移。
增量备份过程中,需要对至少一个有修改的数据块进行备份,对每个有修改的数据块的备份均可以参照图5所示的流程。需要说明的是,当全备份时刻构建的全备份索引文件中数据块N对应的索引项中的Period字段和IndexOffset字段为空,则在增量备份后,各数据块N对应的索引项中的Period字段和IndexOffset字段构成一个单向链表,即按时间顺序的各数据块N对应的索引项中,第一个索引项(即全备份索引文件中的索引项)指向最后一个索引项(即最近一次增量备份索引文件中的索引项),第二个索引项(即第一次增量备份的增量备份索引文件中的索引项)指向空,第三个及之后的各索引项均指向上一个索引项(即上一次备份的备份索引文件中的索引项);当全备份时刻构建的全备份索引文件中数据块N对应的索引项中的Period字段和IndexOffset字段的值分别为全备份时刻和数据块N对应的索引项在全备份索引文件中的偏移,则在增量备份后,各数据块N对应的索引项中的Period字段和IndexOffset字段构成一个循环链表,即按时间顺序的各数据块N对应的索引项中,第一个索引项(即全备份索引文件中的索引项)指向最后一个索引项(即最近一次增量备份索引文件中的索引项),第二个及之后的各索引项均指向上一个索引项(即上一次备份的备份索引文件中的索引项)。
图6为本发明实施例中全备份文件和增量备份文件的一种关联示意图。举例来说,在全备份时刻Period0,对所有数据块Cluster1-8的进行了备份;在Period2进行的最近一次增量备份中,对Cluster1、Cluster2、Cluster5进行了备份;在Period1进行的上一次增量备份中,对Cluster2、Cluster8进行了备份;经过上述三次备份后,如图6所示,Period0对应的全备份索引文件中,Cluster1对应的索引项中的时刻字段的值为Period2、索引偏移字段的值指向Period2对应的增量备份索引文件中Clutser1对应的索引项;Period0对应的全备份索引文件中,Cluster2对应的索引项中的时刻字段的值为Period2、索引偏移字段的值指向Period2对应的增量备份索引文件中Cluster2对应的索引项;Period2对应的增量备份索引文件中,Cluster2对应的索引项中的时刻字段的值为Period1、索引偏移字段的值指向Period1对应的增量备份索引文件中Cluster2对应的索引项;图中未示出的还有,Period0对应的全备份索引文件中,Cluster8对应的索引项中的时刻字段的值为Period1、索引偏移字段的值指向Period1对应的增量备份索引文件中Cluster8对应的索引项。
图7为本发明实施例提供的一种备份数据访问方法的应用流程图。如图7所示,基于图4所示的备份过程得到的全备份索引文件和/或图5所示的备份过程得到的增量备份索引文件,备份数据访问方法包括:
601、确定要访问TargetPeriod的数据块N的数据;
602、找到全备份索引文件;
603、判断全备份时刻是否等于TargetPeriod,若是则执行604,若否则执行605;
通常,TargetPeriod不会在全备份时刻之前。
604、访问全备份数据文件中的数据块N。
605、判断全备份索引文件中数据块N对应的索引项中时刻字段的值LastPeriod是否不大于TargetPeriod,若是则执行606,若否则执行607;
在此场景下,全备份索引文件中数据块N对应的索引项中时刻字段的值为最近一次对数据块N进行备份的时刻,即LastPeriod。需要说明的是,各时刻的大小,取决于其先后顺序,举例来说,Period1在Period2之前,则Period1小于Period2。
606、访问LastPeriod的增量备份数据文件中的数据块N。
607、找到LastPeriod的增量备份索引文件中数据块N对应的索引项;
608、判断所述索引项中时刻字段的值PreviousPeriod是否不大于TargetPeriod,若是则执行609,若否则执行610;
609、访问PreviousPeriod的增量备份数据文件中的数据块N。
610、找到PreviousPeriod的增量备份索引文件中数据块N对应的索引项,返回执行608。
为了进一步地提高对老的备份数据的访问速度,在本发明的又一可选的实施例中,保持全备份索引文件的各索引项中时刻字段和索引偏移字段指向对应数据块在全备份之后的第一次备份。相应地,所述第一时刻为所述全备份时刻之后第一次对所述数据块编号对应的数据块进行备份的时刻;102之后还包括:
若所述目标时刻在所述第一时刻之前,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
进一步地,为了各索引项中时刻字段和索引偏移字段之间的指向更有序,可以将其保持为与对应的备份时刻的从前到后的顺序一致。具体地,所述第二时刻为所述第一时刻之后第一次对所述数据块进行备份的时刻;
所述查找所述第一索引偏移对应的索引项中时刻字段的第二时刻之后,还包括:
若所述目标时刻在所述第二时刻之前,则查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
相应地,在每次增量备份时也要相应地设置此次备份索引文件中的时刻字段和索引偏移字段的值以及相应地更改上一次的备份索引文件中的时刻字段和索引偏移字段的值,接下来以第一时刻的增量备份为例进行说明。具体地,在所述全备份时刻进行全备份之后,还包括:
在所述第一时刻对所述数据块进行增量备份,构建所述第一时刻的备份索引文件和备份数据文件。
若在所述第一时刻对所述数据块的增量备份为所述全备份时刻之后第一次对所述数据块的增量备份;所述构建所述第一时刻的备份索引文件具体包括:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段为空或所述时刻字段和索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
若在所述第一时刻对所述数据块的增量备份不为所述全备份时刻之后第一次对所述数据块的增量备份,第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;所述构建所述第一时刻的备份索引文件具体包括:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段为空或所述时刻字段和索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述第二时刻的备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
在本发明实施例的又一可选的实施例中,备份索引文件的索引项中包括两个Period字段和两个IndexOffset字段,以全备份索引文件为例,数据块N对应的索引项中的一个Period字段和对应的一个IndexOffset字段指向最近一次对数据块N进行备份的备份索引文件中的相应索引项,另一个Period字段和对应的另一个IndexOffset字段指向全备份时刻之后第一次对数据块N进行备份的备份索引文件中的相应索引项,这样,各数据块N对应的索引项中的两个Period字段和两个IndexOffset字段构成一个双向链表。
本发明实施例通过在备份索引文件的与数据块对应的各索引项中添加时刻字段和索引偏移字段,该时刻字段和索引偏移字段指向对对应数据块进行备份的另一时刻的备份文件索引,将不同时刻的备份索引文件中对应同一数据块的索引项关联起来,使得根据要访问备份数据对应的数据块编号即可遍历不同备份索引文件中对应同一数据块的索引项,无需遍历要访问时刻之前所有的备份索引文件并临时构建一个数据索引表,提高了访问速度。并且,如果要同时访问多个时刻的数据,只需要设置不同的目标时刻值,然后遍历对应数据块的索引项即可找到对应的索引信息,而无需像现有技术那样对每个的目标时刻都构建一个索引结构。再者,因为同一Cluster的索引项彼此之间是可以相关联的,所以要对某一Cluster数据进行特别处理时,就会变得相对更容易些,可以通过链表立刻找到需要处理的数据,而如果使用现有的备份索引文件格式,要找到相关联的数据就可能需要对很多文件进行遍历,效率会下降很多。举例来说,当存储空间不够,需要删除一些数据时,可以通过链表遍历各数据块的索引项,确定各数据块的最近一次备份,从而删除该数据块之前的备份。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图8为本发明实施例提供的一种备份数据访问装置的结构示意图。如图8所示,装置包括:
获取模块71,用于获取要访问的目标时刻和要访问的备份数据对应的数据块编号;
第一查找模块72,用于在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻,所述第一时刻为除所述全备份时刻之外对所述数据块编号对应的数据块进行备份的一个时刻;
第二查找模块73,用于若所述第一时刻等于所述目标时刻,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;所述第一索引偏移为所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移;
第三查找模块74,用于所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
可选地,第一查找模块72具体用于:若所述目标时刻在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻。
进一步地,第一查找模块72还用于:
若所述目标时刻不在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
可选地,所述装置还包括:
第一构建模块,用于在所述全备份时刻进行全备份时,构建所述全备份数据文件和全备份索引文件,所述全备份索引文件包括所述数据块编号对应的索引项,所述数据块编号对应的索引项包括时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为对应数据块在所述全备份数据文件中的偏移;所述时刻字段、索引偏移字段均为空,或者,所述时刻字段、索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的索引偏移。
进一步地,第一查找模块72还用于:
若所述目标时刻在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中的时刻字段;
若所述时刻字段为空或所述时刻字段的值为所述全备份时刻,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
可选地,第二查找模块73还用于:
若所述第一时刻在所述目标时刻之后,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
查找所述第一索引偏移对应的索引项中时刻字段的第二时刻,所述第二备份时刻为除所述第一时刻、全备份时刻之外的对所述数据块编号对应的数据块进行备份的一个时刻;
若所述第二时刻等于所述目标时刻,则根据所述第一索引偏移对应的索引项中索引偏移字段的第二索引偏移,查找所述第二时刻的备份索引文件中所述第二索引偏移对应的索引项;
根据所述第二索引偏移对应的索引项中数据偏移字段的值,在所述第二时刻的备份数据文件中查找对应的数据块。
可选地,所述第一时刻为最近一次对所述数据块编号对应的数据块进行备份的时刻;第二查找模块73还用于:
若所述目标时刻在所述第一时刻之后,则查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
可选地,所述第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;所述装置还包括:
第四查找模块,用于在所述第二查找模块查找所述第一索引偏移对应的索引项中时刻字段的第二时刻之后,若所述目标时刻在所述第二时刻之后,则查找所述第二时刻的备份索引文件中所述第二索引偏移对应的索引项;根据所述第二索引偏移对应的索引项中数据偏移字段的值,在所述第二时刻的备份数据文件中查找对应的数据块。
进一步地,所述装置还包括:
第二构建模块,用于在所述第一时刻对所述数据块进行增量备份,构建所述第一时刻的备份索引文件和备份数据文件。
可选地,在所述第一时刻对所述数据块的增量备份为所述全备份时刻之后第一次对所述数据块的增量备份;对应地,所述第二构建模块具体用于:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
可选地,在所述第一时刻对所述数据块的增量备份不为所述全备份时刻之后第一次对所述数据块的增量备份,第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;对应地,所述第二构建模块具体用于:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段分别为第二时刻和所述数据块编号对应的索引项在所述第二时刻的备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
可选地,所述第一时刻为所述全备份时刻之后第一次对所述数据块编号对应的数据块进行备份的时刻;对应地,第二查找模块73还用于:
若所述目标时刻在所述第一时刻之前,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
进一步地,所述第二时刻为所述第一时刻之后第一次对所述数据块进行备份的时刻;所述装置还包括:
第五查找模块,用于在所述第二查找模块查找所述第一索引偏移对应的索引项中时刻字段的第二时刻之后,若所述目标时刻在所述第二时刻之前,则查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
进一步地,所述装置还包括:
第三构建模块,用于在所述第一时刻对所述数据块进行增量备份,构建所述第一时刻的备份索引文件和备份数据文件。
可选地,在所述第一时刻对所述数据块的增量备份为所述全备份时刻之后第一次对所述数据块的增量备份;对应地,所述第三构建模块具体用于:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段为空或所述时刻字段和索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
可选地,在所述第一时刻对所述数据块的增量备份不为所述全备份时刻之后第一次对所述数据块的增量备份,第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;对应地,所述第三构建模块具体用于:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段为空或所述时刻字段和索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述第二时刻的备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
本实施例的具体实现参照本发明实施例提供的一种备份数据访问方法。本发明实施例通过在备份索引文件的与数据块对应的各索引项中添加时刻字段和索引偏移字段,该时刻字段和索引偏移字段指向对对应数据块进行备份的另一时刻的备份文件索引,将不同时刻的备份索引文件中对应同一数据块的索引项关联起来,使得根据要访问备份数据对应的数据块编号即可遍历不同备份索引文件中对应同一数据块的索引项,无需遍历要访问时刻之前所有的备份索引文件并临时构建一个数据索引表,提高了访问速度。并且,如果要同时访问多个时刻的数据,只需要设置不同的目标时刻值,然后遍历对应数据块的索引项即可找到对应的索引信息,而无需像现有技术那样对每个的目标时刻都构建一个索引结构。再者,因为同一Cluster的索引项彼此之间是可以相关联的,所以要对某一Cluster数据进行特别处理时,就会变得相对更容易些,可以通过链表立刻找到需要处理的数据,而如果使用现有的备份索引文件格式,要找到相关联的数据就可能需要对很多文件进行遍历,效率会下降很多。举例来说,当存储空间不够,需要删除一些数据时,可以通过链表遍历各数据块的索引项,确定各数据块的最近一次备份,从而删除该数据块之前的备份。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (30)
1.一种备份数据访问方法,其特征在于,包括:
在全备份时刻进行全备份时,构建全备份数据文件和全备份索引文件,所述全备份索引文件包括与数据块编号对应的索引项,所述数据块编号对应的索引项包括时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为对应数据块在所述全备份数据文件中的偏移;所述时刻字段、索引偏移字段均为空,或者,所述时刻字段、索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的索引偏移;
获取要访问的目标时刻和要访问的备份数据对应的数据块编号;
在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻,所述第一时刻为除所述全备份时刻之外对所述数据块编号对应的数据块进行备份的一个时刻;
若所述第一时刻等于所述目标时刻,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;所述第一索引偏移为所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移;
根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
2.根据权利要求1所述的方法,其特征在于,所述在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻,具体包括:
若所述目标时刻在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述目标时刻不在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
4.根据权利要求1所述的方法,其特征在于,还包括:
若所述目标时刻在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中的时刻字段;
若所述时刻字段为空或所述时刻字段的值为所述全备份时刻,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻之后,还包括:
若所述第一时刻在所述目标时刻之后,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
查找所述第一索引偏移对应的索引项中时刻字段的第二时刻,所述第二时刻为除所述第一时刻、全备份时刻之外的对所述数据块编号对应的数据块进行备份的一个时刻;
若所述第二时刻等于所述目标时刻,则根据所述第一索引偏移对应的索引项中索引偏移字段的第二索引偏移,查找所述第二时刻的备份索引文件中所述第二索引偏移对应的索引项;
根据所述第二索引偏移对应的索引项中数据偏移字段的值,在所述第二时刻的备份数据文件中查找对应的数据块。
6.根据权利要求5所述的方法,其特征在于,所述第一时刻为最近一次对所述数据块编号对应的数据块进行备份的时刻;
所述在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻之后,还包括:
若所述目标时刻在所述第一时刻之后,则查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
7.根据权利要求6所述的方法,其特征在于,所述第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;
所述查找所述第一索引偏移对应的索引项中时刻字段的第二时刻之后,还包括:
若所述目标时刻在所述第二时刻之后,则查找所述第二时刻的备份索引文件中所述第二索引偏移对应的索引项;
根据所述第二索引偏移对应的索引项中数据偏移字段的值,在所述第二时刻的备份数据文件中查找对应的数据块。
8.根据权利要求6或7所述的方法,其特征在于,在所述全备份时刻进行全备份之后,还包括:
在所述第一时刻对所述数据块进行增量备份,构建所述第一时刻的备份索引文件和备份数据文件。
9.根据权利要求8所述的方法,其特征在于,在所述第一时刻对所述数据块的增量备份为所述全备份时刻之后第一次对所述数据块的增量备份;所述构建所述第一时刻的备份索引文件,具体包括:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
10.根据权利要求8所述的方法,其特征在于,在所述第一时刻对所述数据块的增量备份不为所述全备份时刻之后第一次对所述数据块的增量备份,第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;所述构建所述第一时刻的增量备份索引文件,具体包括:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段分别为第二时刻和所述数据块编号对应的索引项在所述第二时刻的备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
11.根据权利要求5所述的方法,其特征在于,所述第一时刻为所述全备份时刻之后第一次对所述数据块编号对应的数据块进行备份的时刻;
所述在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻之后,还包括:
若所述目标时刻在所述第一时刻之前,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
12.根据权利要求11所述的方法,其特征在于,所述第二时刻为所述第一时刻之后第一次对所述数据块进行备份的时刻;
所述查找所述第一索引偏移对应的索引项中时刻字段的第二时刻之后,还包括:
若所述目标时刻在所述第二时刻之前,则查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
13.根据权利要求11或12所述的方法,其特征在于,在所述全备份时刻进行全备份之后,还包括:
在所述第一时刻对所述数据块进行增量备份,构建所述第一时刻的备份索引文件和备份数据文件。
14.根据权利要求13所述的方法,其特征在于,在所述第一时刻对所述数据块的增量备份为所述全备份时刻之后第一次对所述数据块的增量备份;所述构建所述第一时刻的备份索引文件具体包括:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段为空或所述时刻字段和索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
15.根据权利要求13所述的方法,其特征在于,在所述第一时刻对所述数据块的增量备份不为所述全备份时刻之后第一次对所述数据块的增量备份,第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;所述构建所述第一时刻的备份索引文件具体包括:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段为空或所述时刻字段和索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述第二时刻的备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
16.一种备份数据访问装置,其特征在于,包括:
第一构建模块,用于在全备份时刻进行全备份时,构建所述全备份数据文件和全备份索引文件,所述全备份索引文件包括与数据块编号对应的索引项,所述数据块编号对应的索引项包括时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为对应数据块在所述全备份数据文件中的偏移;所述时刻字段、索引偏移字段均为空,或者,所述时刻字段、索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的索引偏移;
获取模块,用于获取要访问的目标时刻和要访问的备份数据对应的数据块编号;
第一查找模块,用于在全备份时刻创建的全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻,所述第一时刻为除所述全备份时刻之外对所述数据块编号对应的数据块进行备份的一个时刻;
第二查找模块,用于若所述第一时刻等于所述目标时刻,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;所述第一索引偏移为所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移;
第三查找模块,用于所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
17.根据权利要求16所述的装置,其特征在于,所述第一查找模块具体用于:若所述目标时刻在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中时刻字段的第一时刻。
18.根据权利要求17所述的装置,其特征在于,所述第一查找模块还用于:
若所述目标时刻不在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
19.根据权利要求16所述的装置,其特征在于,所述第一查找模块还用于:
若所述目标时刻在所述全备份时刻之后,则在所述全备份索引文件中查找所述数据块编号对应的索引项中的时刻字段;
若所述时刻字段为空或所述时刻字段的值为所述全备份时刻,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
20.根据权利要求16-19中任一项所述的装置,其特征在于,所述第二查找模块还用于:
若所述第一时刻在所述目标时刻之后,则根据所述全备份索引文件中所述数据块编号对应的索引项中索引偏移字段的第一索引偏移,查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
查找所述第一索引偏移对应的索引项中时刻字段的第二时刻,所述第二时刻为除所述第一时刻、全备份时刻之外的对所述数据块编号对应的数据块进行备份的一个时刻;
若所述第二时刻等于所述目标时刻,则根据所述第一索引偏移对应的索引项中索引偏移字段的第二索引偏移,查找所述第二时刻的备份索引文件中所述第二索引偏移对应的索引项;
根据所述第二索引偏移对应的索引项中数据偏移字段的值,在所述第二时刻的备份数据文件中查找对应的数据块。
21.根据权利要求20所述的装置,其特征在于,所述第一时刻为最近一次对所述数据块编号对应的数据块进行备份的时刻;
所述第二查找模块还用于:
若所述目标时刻在所述第一时刻之后,则查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;
根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
22.根据权利要求21所述的装置,其特征在于,所述第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;
所述装置还包括:
第四查找模块,用于在所述第二查找模块查找所述第一索引偏移对应的索引项中时刻字段的第二时刻之后,若所述目标时刻在所述第二时刻之后,则查找所述第二时刻的备份索引文件中所述第二索引偏移对应的索引项;根据所述第二索引偏移对应的索引项中数据偏移字段的值,在所述第二时刻的备份数据文件中查找对应的数据块。
23.根据权利要求21或22所述的装置,其特征在于,还包括:
第二构建模块,用于在所述第一时刻对所述数据块进行增量备份,构建所述第一时刻的备份索引文件和备份数据文件。
24.根据权利要求23所述的装置,其特征在于,在所述第一时刻对所述数据块的增量备份为所述全备份时刻之后第一次对所述数据块的增量备份;
所述第二构建模块具体用于:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
25.根据权利要求23所述的装置,其特征在于,在所述第一时刻对所述数据块的增量备份不为所述全备份时刻之后第一次对所述数据块的增量备份,第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;
所述第二构建模块具体用于:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段分别为第二时刻和所述数据块编号对应的索引项在所述第二时刻的备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
26.根据权利要求20所述的装置,其特征在于,所述第一时刻为所述全备份时刻之后第一次对所述数据块编号对应的数据块进行备份的时刻;
所述第二查找模块还用于:
若所述目标时刻在所述第一时刻之前,则在所述全备份索引文件中查找所述数据块编号对应的索引项中数据偏移字段的值;
根据所述数据偏移字段的值,在全备份时刻创建的全备份数据文件中查找对应的数据块。
27.根据权利要求26所述的装置,其特征在于,所述第二时刻为所述第一时刻之后第一次对所述数据块进行备份的时刻;
所述装置还包括:
第五查找模块,用于在所述第二查找模块查找所述第一索引偏移对应的索引项中时刻字段的第二时刻之后,若所述目标时刻在所述第二时刻之前,则查找所述第一时刻的备份索引文件中所述第一索引偏移对应的索引项;根据所述第一索引偏移对应的索引项中数据偏移字段的值,在所述第一时刻的备份数据文件中查找对应的数据块。
28.根据权利要求26或27所述的装置,其特征在于,还包括:
第三构建模块,用于在所述第一时刻对所述数据块进行增量备份,构建所述第一时刻的备份索引文件和备份数据文件。
29.根据权利要求28所述的装置,其特征在于,在所述第一时刻对所述数据块的增量备份为所述全备份时刻之后第一次对所述数据块的增量备份;
所述第三构建模块具体用于:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段为空或所述时刻字段和索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述全备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
30.根据权利要求28所述的装置,其特征在于,在所述第一时刻对所述数据块的增量备份不为所述全备份时刻之后第一次对所述数据块的增量备份,第二时刻为所述第一时刻之前上一次对所述数据块进行备份的时刻;
所述第三构建模块具体用于:
构建所述第一时刻的备份索引文件中所述数据块编号对应的索引项,所述数据块编号对应的索引项包括所述数据块编号、时刻字段、索引偏移字段和数据偏移字段,所述数据偏移字段的值为所述数据块在所述第一时刻的备份数据文件中的偏移,所述时刻字段和索引偏移字段为空或所述时刻字段和索引偏移字段的值分别为所述全备份时刻和所述数据块编号对应的索引项在所述全备份索引文件中的偏移;
将所述第二时刻的备份索引文件中所述数据块编号对应的索引项中的时刻字段和索引偏移字段的值分别更新为所述第一时刻和所述数据块编号对应的索引项在所述第一时刻的备份索引文件中的偏移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210394177.5A CN102929976B (zh) | 2012-10-17 | 2012-10-17 | 备份数据访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210394177.5A CN102929976B (zh) | 2012-10-17 | 2012-10-17 | 备份数据访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929976A CN102929976A (zh) | 2013-02-13 |
CN102929976B true CN102929976B (zh) | 2016-06-15 |
Family
ID=47644774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210394177.5A Active CN102929976B (zh) | 2012-10-17 | 2012-10-17 | 备份数据访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929976B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341072A (zh) * | 2016-11-18 | 2017-11-10 | 新华三技术有限公司 | 一种数据备份方法及装置 |
CN107066353B (zh) * | 2017-03-28 | 2020-06-12 | 深圳市科力锐科技有限公司 | 数据备份过程中的数据使用方法及数据一致性组件 |
WO2019028682A1 (zh) | 2017-08-08 | 2019-02-14 | 深圳前海达闼云端智能科技有限公司 | 一种多系统共享内存的管理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006023992A3 (en) * | 2004-08-24 | 2006-12-21 | Revivio Inc | Image data stroage device write time mapping |
CN101477486A (zh) * | 2009-01-22 | 2009-07-08 | 中国人民解放军国防科学技术大学 | 一种基于扇区重组的文件备份恢复方法 |
CN101599080A (zh) * | 2009-07-22 | 2009-12-09 | 中国科学院计算技术研究所 | 一种备份数据的组织系统和方法 |
CN102236589A (zh) * | 2010-05-04 | 2011-11-09 | 南京壹进制信息技术有限公司 | 一种基于数字标识符管理增量文件的数据保护方法 |
-
2012
- 2012-10-17 CN CN201210394177.5A patent/CN102929976B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006023992A3 (en) * | 2004-08-24 | 2006-12-21 | Revivio Inc | Image data stroage device write time mapping |
CN101477486A (zh) * | 2009-01-22 | 2009-07-08 | 中国人民解放军国防科学技术大学 | 一种基于扇区重组的文件备份恢复方法 |
CN101599080A (zh) * | 2009-07-22 | 2009-12-09 | 中国科学院计算技术研究所 | 一种备份数据的组织系统和方法 |
CN102236589A (zh) * | 2010-05-04 | 2011-11-09 | 南京壹进制信息技术有限公司 | 一种基于数字标识符管理增量文件的数据保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102929976A (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9817588B2 (en) | Memory device and operating method of same | |
CN102541757B (zh) | 写缓存方法、缓存同步方法和装置 | |
CN101923568B (zh) | 布隆过滤器的元素增加、删除方法以及布隆过滤器 | |
US9183268B2 (en) | Partition level backup and restore of a massively parallel processing database | |
CN102508784B (zh) | 视频监控设备中闪存卡的数据存储方法及其系统 | |
CN103412803B (zh) | 数据恢复的方法及装置 | |
CN104142958A (zh) | 一种键值对系统中数据的存储方法和相关装置 | |
CN104239443B (zh) | 一种序列化数据操作日志的存储方法 | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN104572920A (zh) | 一种数据整理方法和装置 | |
CN111399777A (zh) | 一种基于数据值分类的差异化键值数据存储方法 | |
EP2916240A1 (en) | Database storage system based on compact disk and method using the system | |
CN103577513A (zh) | 藉延迟节点实例化以缓存xml信息集的系统和/或方法 | |
CN103268270B (zh) | 快照的管理方法和装置 | |
CN107665219B (zh) | 一种日志管理方法及装置 | |
CN104615594A (zh) | 一种数据更新方法及装置 | |
CN103019884A (zh) | 基于虚拟机快照的内存页去重方法及装置 | |
CN102306168A (zh) | 日志操作方法、装置及文件系统 | |
CN105045850A (zh) | 云存储日志文件系统中垃圾数据回收方法 | |
CN104360914A (zh) | 增量快照方法和装置 | |
CN102654863A (zh) | 一种实时数据库历史数据组织管理方式 | |
CN104239438A (zh) | 基于分离存储的文件信息存储方法和文件信息读写方法 | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN102929976B (zh) | 备份数据访问方法及装置 | |
CN106155838A (zh) | 一种数据库备份数据恢复方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220831 Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041 Patentee after: Chengdu Huawei Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |