一种计算机本地及网络多次增量的数据备份、恢复方法

文档序号:6601150阅读:221来源:国知局
专利名称:一种计算机本地及网络多次增量的数据备份、恢复方法
技术领域
本发明涉及到一种计算机本地及网络多次增量的数据备份、恢复方法,属于计算机领域。
背景技术
在当今的信息化、网络化社会里,计算机在工作和生活中扮演着极其重要的角色。 越来越多的企业、商家、政府机关和个人通过计算机来获取信息、处理信息,同时将最重要的信息以数据文件的形式保存在计算机中。可以想象,一旦这些重要的数据泄露或者丢失, 将会导致一个企业停止运转,甚至面临破产。由此,人们越来越关注如何来确保数据的完好,其中数据备份就是最重要的解决方案之一。经对现有技术的文献检索发现,中国专利(申请)号为200610001299. 8,名为“数据恢复方法”的专利,该方案所述的数据恢复的方法,需要本地与远程之间进行完整的文件交换,这样就会产生大量的网络传输,在延长了数据恢复时间的同时还带来了传输安全隐患,更重要的是,反复存储同一文件的不同版本,且这些不同版本的大部分内容都是相同的,会导致大量的存储空间浪费。在这种情况下,只需备份同一文件不同版本之间的差异数据备份技术,将更受欢迎。中国专利(申请)号为200610116303. 5,名为“计算机网络数据备份中文件匹配的方法”的专利,它在每次备份时生成并传输一个增量备份到远程进行合成。尽管生成一次增量备份比较容易,但对于多次增量来说,这项技术有三项不足之处(1)逻辑上,一个增量备份是“最新版本备份的文件”和“当前的文件Y间的差异, 所以要生成增量备份,必须首先存在这两个文件,才能算出差异。但是,由于增量备份的方式并不存储每个版本的完整的源文件,因此“最新版本备份的文件”并不直接存在,该源文件必须首先被恢复出来。这导致,要做备份,首先要做一次恢复,这是一种时间的浪费(参考图4)。(2)为了保证恢复的速度,每次备份必须进行合成,而合成以后就等于每个版本的备份都包含了所有历史上的增量备份信息,仍然浪费存储空间(同时,合成的动作也浪费了运算时间)。这种情况下,浪费的存储空间和每次都备份完整文件一样多。换言之,这并不是真正的多次增量,只是一系列的单次增量而已(参考图4、图5)。(3)如果不进行合成,则恢复就极其缓慢,只要历史上有多少个增量备份版本,就要生成多少次中间文件,随着备份的版本越多,恢复会变得越来越慢(参考图5)。

发明内容
本发明的目的是提供一种计算机本地及网络多次增量的数据备份、恢复方法,所述一种计算机本地及网络多次增量的数据备份方法包括如下步骤步骤1,扫描历史备份;步骤2,打开所有增量备份文件以及完全备份文件,并建立索引文件以备读取;步骤3,根据多次增量备份后的索引文件,建立索引网络;
步骤4,根据索引网络,从头到尾逐块读出分块数据到内存中;步骤5,将读出的分块数据和源文件的对应位置作比较,并生成新的增量备份索引文件;步骤6,释放资源,关闭所有文件。进一步,所述的一种计算机本地及网络多次增量的数据备份方法,还包括如下技术特征在步骤1中所述的扫描历史备份具体步骤有1)扫描存放在备份目录下的所有历史备份源文件,找到该源文件最初的完全备份和之后的所有增量备份,并将所有增量备份存入一个链表,2)取出其中最后一次备份文件,比较该备份文件和需要备份的源文件的修改日期,如果最后一次备份文件的日期较新,则放弃备份,否则进入步骤3),3)如果该文件以前从未做过备份,则此次执行完全备份,并结束;否则,进入步骤 2。在步骤3中建立索引网络的方法有1)构造第一条索引链,将最原始的索引文件中的各分块数据逐块读出,并在内存中按顺序构成一个链表,2)构造第二条到最后一条索引链,按从老到新的顺序读剩下的索引文件,3)连接相邻两条链,对于所有相邻的两条链,称前面一条为旧链,后面一条为新链。在步骤3的1)中构成的第一条索引链中,匹配块指向最老的完全备份文件中的存放位置,非匹配块指向该索引文件对应的增量内容文件中的存放位置;并在构造链表的过程中,计算每一块在该版本完整文件中的位置。对于每个索引文件,都把其中的分块数据构造成一条链表;同时,匹配块指向前一完整文件中的存放位置,不匹配块指向本索引对应的增量内容文件中的存放位置,并计算该块在该版本完整文件中的位置。所述的连接相邻两条链中,对于新链的每一个匹配块,都需要指向旧链中对应的依赖块。一种计算机本地及网络多次增量的数据恢复方法,该方法包括如下步骤步骤1,扫描历史备份;步骤2,检查数据类型是否匹配,打开所有的备份文件并建立索引文件,以备读取;步骤3,根据多次增量备份后的索引文件,建立索引网络;步骤4,根据索引网络,从头到尾逐块读出分块的内容到内存中;步骤5,每读出一个分块,都写入恢复文件,并在读下一个分块之前,释放该分块所占的内存;步骤6,将文件恢复,释放内存资源。进一步,所述的一种计算机本地及网络多次增量的数据恢复方法,还包括如下技术特征在步骤1中,扫描源文件的所有历史备份有以下步骤,
1)扫描存放在备份目录下的所有历史备份源文件,找到该源文件最初的完全备份和之后的所有增量备份,并将所有增量备份存入一个链表,2)取出其中最后一次备份,比较该备份文件和需要备份的源文件的修改日期。在步骤2中,建立索引文件时,检查数据类型是否匹配,首先检查数据块的类型, 如果是不匹配块,则直接从对应的增量内容文件中的相应位置读出;如果是匹配块,则建立依赖块。在步骤3中,所述索引网络的建立方法为1)构造第一条索引链将最原始的索引文件中的各分块信息逐块读出,并在内存中按顺序构成一个链表;2)构造第二条到最后一条索引链按从老到新的顺序读剩下的索引文件;3)连接相邻两条链对于所有相邻的两条链,称前面一条为旧链,后面一条为新链。所述依赖块的引用方式如下在建立索引网络之后,从所述的索引网络中找到该数据块的依赖块,并读取该依赖块。本发明与现有技术相比,具有以下优点(1)增量备份前,不必先恢复,从而大大加快备份速度。增量备份需要用最近一次备份的完整源文件和新的源文件进行比较,但多次增量时,最近一次备份的是增量备份文件(含增量内容文件和索引文件),而不是完整源文件。现有技术不得不首先恢复出一个完整源文件用于比较(见图4)。但本发明使用多次增量索引文件生成索引网络,利用索引网络,可以不必恢复完整的源文件,就能读取完整源文件中任何一块内容,从而避免了恢复源文件这一步(见图2)。现有技术如果在备份时做合成,则此时需要一次恢复的时间;如果在备份是不做合成,则此时需要恢复的次数和增量备份的次数一样多。(2)增量备份后,不必进行合成,从而大大节约运算时间、减少备份空间。现有技术需要合成(见图4),合成操作至少需要恢复一次源文件的时间;本发明避免了合成,不需要任何时间(见图5)。合成出的文件大小约为历史上所有增量文件的总和,假设每次备份的内容文件大约相等,设为n,共备份k次,则现有技术约需要k(k+l)n/2的存储空间;本发明避免了合成,总共只需要kn的存储空间,只占现有技术所需空间的2/(k+l)。(3)恢复时,不必生成任何中间文件,从而大大加快恢复速度。现有技术的恢复必须基于一个旧的完整源文件和一个增量备份,对于多次增量,例如η次增量,现有技术不得不首先用最老的源文件和第1个增量备份恢复出第1个中间文件,再用第1个中间文件和第2个增量备份恢复出第2个中间文件,以此类推,直到得到第η-1个中间文件,最后用第 η-1个中间文件和第η个增量备份恢复出最终的源文件(见图5)。本发明利用索引网络可以直接定位并读取任何一个版本的增量备份(或最老的源文件备份)中的内容,因此完全避免了任何中间文件的产生(见图3)。现有技术需要恢复η次文件的时间,而本发明只需恢复1次文件的时间。


图1是本发明单次增量备份的结构和原理示意图2是本发明多次增量备份关键原理示意图2. 1是本发明多次增量备份过程中,其中索引网络的示意图;图3是本发明多次增量恢复关键原理示意图;图4是现有技术的(合成或不合成的)增量备份过程示意图;图5是现有技术的增量恢复过程示意图;图6是本发明多次增量备份、恢复的大致步骤流程图。
具体实施例以下结合附图,具体说明本发明。本发明提供一种多次增量的数据备份、恢复的方法,主要针对多次增量。多次增量是多个增量备份的有机、动态的叠加。下面首先说明一个增量备份的原理。如图1所示, 当需要备份的文件被修改后,就从旧源文件变成了新源文件。假设我们已经有旧源文件的备份,现在要得到从旧源文件变到新源文件的增量备份。比较新、旧两个源文件的内容,当发现任何新增、删除、修改的内容时,就把它们作为分块的边界。比较完毕后,新、旧源文件都被分成多个分块。凡是未修改的块,都是匹配的块;凡是增、删、改过的块,都是不匹配的块。新建一个索引文件、一个增量内容文件,其中索引文件里记下新源文件每个分块的信息,记录下的每个新源文件的每一个分块信息包括位置、长度等是否匹配。对于“位置”这一信息来说,如果是匹配的块,则记录在分块的旧文件中的位置;如果是不匹配的块,则记录块在增量内容文件中的位置,增量内容文件里记下每个不匹配块的内容。在恢复的时候, 读入索引文件,根据对每个块信息的描述,读入分块的内容并写入恢复文件中,如果是匹配块,则在分块的旧文件中读取;如果是不匹配块,则在增量内容文件中读取,就恢复了新文件。如图6所示,为本发明流程图。它包括了多次增量的备份和恢复方法。(一 )多次增量的备份方法Al,步骤1,扫描历史备份;1)扫描存放在备份目录下的所有历史备份源文件,找到该源文件最初的完全备份和之后的所有增量备份,并将所有增量备份存入一个链表,2)取出其中最后一次备份文件,比较该备份文件和需要备份的源文件的修改日期,如果最后一次备份文件的日期较新,则放弃备份,否则进入步骤3),3)如果该文件以前从未做过备份,则此次执行完全备份,并结束;否则,进入步骤 2。步骤2,打开所有增量备份的索引文件和内容文件,以及完全备份文件,以备读取;步骤3,根据多次增量备份的索引文件,建立索引网络;其中建立索引网络的方法具体为参考图2、图2.1、图3:1)构造第一条索引链,将最原始的索引文件中的各分块数据逐块读出,并在内存中按顺序构成一个链表;将最老的索引文件中的各分块信息逐块读出,并在内存中按顺序构成一个链表。其中匹配块指向唯一的完全备份文件中的存放位置,如图2、图3. 1、图3,增量索引文件Vl中的匹配块指向完整备份文件中的存放位置;非匹配块指向该索引文件对应的增量内容文件中的存放位置,如图2、图3.1、图3中的增量索引文件VI、增量索引文件 V2、增量索引文件V3中的不匹配块分别指向增量内容文件VI、增量内容文件V2、增量内容文件V3;并在构造链表的过程中,通过累加前面所有块的大小,得到本块的在完整备份文件中的位置;2)构造第二条到最后一条索引链,按从老到新的顺序读剩下的索引文件。按从老到新的顺序读剩下的增量索引文件VI、增量索引文件V2、增量索引文件V3,对于每个索引文件,都把其中的分块信息构造成一条链表;同时,匹配块指向前一完整备份文件中的存放位置,不匹配块指向本索引对应的增量内容文件中的存放位置,如增量索引文件Vl中的不匹配块指向增量内容文件VI,增量索引文件V2中的不匹配块指向增量内容文件V2,增量索引文件V3中的不匹配块指向增量内容文件V3。通过累加前面所有块的大小,得到本块在完整备份文件中的位置。3)连接相邻两条链,对于所有相邻的两条链,称前面一条为旧链,后面一条为新链。对于所有相邻的两条链,称前面一条为旧链,后面一条为新链。对于新链的每一个匹配块,都需要指向旧链中对应的依赖块。具体方法为,通过步骤2)中得到的匹配块指向前一完整备份文件中的存放位置,在旧链搜寻该块在自己版本的完整备份文件中的位置范围(所谓位置范围,就是该块在自己版本的完整文件中的[起始位置,起始位置+块长度] 之间的范围)覆盖新链的这个位置。这个覆盖了对应位置的块即为对应的依赖块。这样就形成了图2、图3中的索引网络。步骤4,根据索引网络,从头到尾逐块读出分块数据到内存中。通过索引网络找到该块的依赖块。读这个依赖块。如果依赖块是不匹配块,则从依赖块对应的增量内容文件中读出。如果依赖块是匹配决,则继续向依赖块的依赖块追溯,直到遇到不匹配块,或者遇到最老的索引文件链中的匹配块。否则执行递归进行匹配;如果读取的依赖块长度未达到本快的需要,则在索引链中搜寻依赖块的下一个块继续读取,直到读出的总长度达到该块的要求。这样,就读到了任意一个块的内容。步骤5,将读出的分块数据和源文件的对应位置作比较,并生成新的增量备份索引文件;在得到任意一个块的内容的同时建立新的增量索引文件。然后,在读下一个分块内容之前,先释放这个分块所占的内存;步骤6,后期工作释放资源,关闭打开的所有文件;对上述操作过程中产生的缓冲内存空间进行清除。( 二)多次增量的恢复方法A2,步骤1,扫描历史备份;1)扫描存放在备份目录下的所有历史备份源文件,找到该源文件最初的完全备份和之后的所有增量备份,并将所有增量备份存入一个链表,2)取出其中最后一次备份文件,比较该备份文件和需要备份的源文件的修改日期,如果最后一次备份文件的日期较新,则放弃备份,否则进入步骤3),3)如果该文件以前从未做过备份,则此次执行完全备份,并结束;否则,进入步骤 2。步骤2,打开所有增量备份的索引文件和内容文件,以及完全备份文件,以备读取;步骤3,根据多次增量备份的索引文件,建立索引网络;其中建立索引网络的方法具体为参考图2、图2.1、图3:1)构造第一条索引链,将最原始的索引文件中的各分块数据逐块读出,并在内存中按顺序构成一个链表;将最老的索引文件中的各分块信息逐块读出,并在内存中按顺序构成一个链表。其中匹配块指向唯一的完全备份文件中的存放位置,如图2、图3. 1、图3,增量索引文件Vl中的匹配块指向完整备份文件中的存放位置;非匹配块指向该索引文件对应的增量内容文件中的存放位置,如图2、图3. 1、图3中的增量索引文件VI、增量索引文件 V2、增量索引文件V3中的不匹配块分别指向增量内容文件VI、增量内容文件V2、增量内容文件V3 ;并在构造链表的过程中,通过累加前面所有块的大小,得到本块的在完整备份文件中的位置;2)构造第二条到最后一条索引链,按从老到新的顺序读剩下的索引文件。按从老到新的顺序读剩下的增量索引文件VI、增量索引文件V2、增量索引文件V3,对于每个索引文件,都把其中的分块信息构造成一条链表;同时,匹配块指向前一完整备份文件中的存放位置,不匹配块指向本索引对应的增量内容文件中的存放位置,如增量索引文件Vl中的不匹配块指向增量内容文件VI,增量索引文件V2中的不匹配块指向增量内容文件V2,增量索引文件V3中的不匹配块指向增量内容文件V3。通过累加前面所有块的大小,得到本块在完整备份文件中的位置。3)连接相邻两条链,对于所有相邻的两条链,称前面一条为旧链,后面一条为新链。对于所有相邻的两条链,称前面一条为旧链,后面一条为新链。对于新链的每一个匹配块,都需要指向旧链中对应的依赖块。具体方法为,通过步骤幻中得到的匹配块指向前一完整备份文件中的存放位置,在旧链搜寻该块在自己版本的完整备份文件中的位置范围(所谓位置范围,就是该块在自己版本的完整文件中的[起始位置,起始位置+块长度] 之间的范围)覆盖新链的这个位置。这个覆盖了对应位置的块即为对应的依赖块。这样就形成了图2、图3中的索引网络。步骤4,根据索引网络,从头到尾逐块读出分块数据到内存中。通过索引网络找到该块的依赖块。要恢复一个块,首先检查这个块的类型,如果是不匹配块,则直接从对应的增量内容文件中的相应位置读出;如果是匹配块,则读这个依赖块。如果依赖块是不匹配块,则从依赖块对应的增量内容文件中读出。如果依赖块是匹配块,则继续向依赖块的依赖块追溯,直到遇到不匹配块,或者遇到最老的索引文件链中的匹配块。否则执行递归进行匹配;如果读取的依赖块长度未达到本快的需要,则在索引链中搜寻依赖块的下一个块继续读取,直到读出的总长度达到该块的要求。这样,就读到了任意一个块的内容。步骤5,每读出一个分块,都写入恢复文件。并在读下一个分块之前,释放这个块的内存。步骤6,后期工作,释放资源,关闭打开的所有文件;对上述操作过程中产生的缓冲内存空间进行清除。假设我们已经有旧文件C:\workspace\filename的备份,现在要得到从旧文件变到新文件的增量备份。比较新、旧两个文件的内容,当发现任何新增、删除、修改的内容时,就把它们作为分块的边界。比较完毕后,新、旧文件都被分成多个分块。凡是未修改的块,都是匹配的块;凡是增、删、改过的块,都是不匹配的块。新建一个索引文件、一个增量内容文件,其中索引文件里记下新文件每个分块的信息,增量内容文件里记下每个不匹配块的内容。在恢复的时候,读入索引文件,通过索引网络分块读出旧文件C:\workspace\filename 的内容。根据对每个块的描述,读入块的内容并写入恢复文件中如果是匹配块,则在旧文件 C:\workspace\filename中读取;如果是不匹配块,则在增量内容文件中读取,就恢复了新文件。 以上是对本发明的描述而非限定,基于本发明思想的其它实施方式,均在本发明的保护范围之中。
权利要求
1.一种计算机本地及网络多次增量的数据备份方法,其特征在于,所述多次增量的数据备份方法包括如下步骤步骤1,扫描历史备份;步骤2,打开所有增量备份文件以及完全备份文件,并建立索引文件,以备读取;步骤3,根据多次增量备份后的索引文件,建立索引网络;步骤4,根据索引网络,从头到尾逐块读出分块数据到内存中;步骤5,将读出的分块数据和源文件的对应位置作比较,并生成新的增量备份索引文件;步骤6,释放资源,关闭所有打开的文件。
2.根据权利要求1所述的一种计算机本地及网络多次增量的数据备份方法,其特征在于,步骤1中所述的扫描历史备份具体步骤有1)扫描存放在备份目录下的所有历史备份源文件,找到该源文件最初的完全备份和之后的所有增量备份,并将所有增量备份存入一个链表,2)取出其中最后一次备份文件,比较该备份文件和需要备份的源文件的修改日期,如果最后一次备份文件的日期较新,则放弃备份,否则进入步骤3),3)如果该文件以前从未做过备份,则此次执行完全备份,并结束;否则,进入步骤2。
3.根据权利要求1所述的一种计算机本地及网络多次增量的数据备份方法,其特征在于,步骤3中建立索引网络的方法有1)构造第一条索引链,将最原始的索引文件中的各分块数据逐块读出,并在内存中按顺序构成一个链表,2)构造第二条到最后一条索引链,按从老到新的顺序读剩下的索引文件,3)连接相邻两条链,对于所有相邻的两条链,称前面一条为旧链,后面一条为新链。
4.根据权利要求3所述的一种计算机本地及网络多次增量的数据备份方法,其特征在于在构成的第一条索引链中,匹配块指向最老的完全备份文件中的存放位置,非匹配块指向该索引文件对应的增量内容文件中的存放位置;并在构造链表的过程中,计算每一块在该版本完整文件中的位置;
5.根据权利要求3所述的一种计算机本地及网络多次增量的数据备份方法,其特征在于对于每个索引文件,都把其中的分块数据构造成一条链表;同时,匹配块指向前一完整文件中的存放位置,不匹配块指向本索引对应的增量内容文件中的存放位置,并计算该块在该版本完整文件中的位置;
6.根据权利要求3所述的一种计算机本地及网络多次增量的数据备份方法,其特征在于所述的连接相邻两条链中,对于新链的每一个匹配块,都需要指向旧链中对应的依赖块。
7.一种计算机本地及网络多次增量的数据恢复方法,其特征在于,所述多次增量的数据恢复方法包括如下步骤步骤1,扫描历史备份;步骤2,打开所有增量备份文件以及完全备份文件并建立索引文件,以备读取;步骤3,根据多次增量备份后的索引文件,建立索引网络;步骤4,根据索引网络,从头到尾逐块读出分块的内容到内存中;步骤5,每读出一个分块,都写入恢复文件,并在读下一个分块之前,释放该分块所占的内存;步骤6,释放资源,关闭所有打开的文件。
8.根据权利要求7所述的一种计算机本地及网络多次增量的数据恢复方法,其特征在于,在步骤1中,扫描源文件的所有历史备份有以下步骤1)扫描存放在备份目录下的所有历史备份源文件,找到该源文件最初的完全备份和之后的所有增量备份,并将所有增量备份存入一个链表,2)取出其中最后一次备份,比较该备份文件和需要备份的源文件的修改日期。
9.根据权利要求7所述的一种计算机本地及网络多次增量的数据恢复方法,其特征在于在步骤2中,建立索引文件时,检查数据类型是否匹配,首先检查数据块的类型,如果是不匹配块,则直接从对应的增量内容文件中的相应位置读出;如果是匹配块,则建立依赖块。
10.根据权利要求7所述的一种计算机本地及网络多次增量的数据恢复方法,其特征在于,在步骤3中,所述索引网络的建立方法为1)构造第一条索引链将最原始的索引文件中的各分块信息逐块读出,并在内存中按顺序构成一个链表;2)构造第二条到最后一条索引链按从老到新的顺序读剩下的索引文件;3)连接相邻两条链对于所有相邻的两条链,称前面一条为旧链,后面一条为新链。
11.根据权利要求9和10所述的一种计算机本地及网络多次增量的数据恢复方法,其特征在于,所述依赖块的引用方式如下在建立索引网络之后,从所述的索引网络中找到该数据块的依赖块,并读取该依赖块。
全文摘要
本发明提供了一种计算机本地及网络多次增量的数据备份、恢复方法,属于计算机领域。其中的多次增量的数据备份方法包括,步骤1,扫描历史备份;步骤2,打开所有增量备份文件以及完全备份文件,并建立索引文件,以备读取;步骤3,根据多次增量备份后的索引文件,建立索引网络;步骤4,根据索引网络,从头到尾逐块读出分块数据到内存中;步骤5,将读出的分块数据和源文件的对应位置作比较,并生成新的增量备份索引文件;步骤6,释放资源,关闭所有打开的文件。本发明与现有技术相比,具有以下优点,增量备份前,不必先恢复,从而大大加快备份速度。增量备份后,不必进行合成,从而大大节约运算时间、减少备份空间。
文档编号G06F17/30GK102236586SQ20101015361
公开日2011年11月9日 申请日期2010年4月21日 优先权日2010年4月21日
发明者邹恒明, 雷州 申请人:邹恒明, 雷州
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1