CN102023903A - 一种数据备份的版本管理方法及装置 - Google Patents
一种数据备份的版本管理方法及装置 Download PDFInfo
- Publication number
- CN102023903A CN102023903A CN 200910092893 CN200910092893A CN102023903A CN 102023903 A CN102023903 A CN 102023903A CN 200910092893 CN200910092893 CN 200910092893 CN 200910092893 A CN200910092893 A CN 200910092893A CN 102023903 A CN102023903 A CN 102023903A
- Authority
- CN
- China
- Prior art keywords
- version
- redaction
- scope
- file
- node
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据备份的版本管理方法及装置,其中方法包括:接收版本管理指令;根据所述版本管理指令,在合并版本范围内,若有修改的版本,则复制所述修改的版本中最新修改的版本至第一文件,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;根据所述版本管理指令,在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至第二文件;删除所述合并版本范围内的所有中间版本。本发明的方案提高了备份效率,节省了系统空间。
Description
技术领域
本发明涉及计算机存储技术,特别是指一种数据备份的版本管理方法及装置。
背景技术
随着数据量越来越大以及重要性的提升,对企业来说,数据备份系统在IT系统中具有非常重要的地位,数据备份顾名思义,就是将数据以某种方式加以保留,周期性保存在线数据的历史,以便在线数据发生损坏时,使用备份数据恢复到错误发生之前的状态,以确保数据的正常访问。
现有数据备份方法中主要包括三种备份方式:全备份,增量备份和差异备份,其中全备份就是备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件,在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性;增量备份针对于上一次备份(无论是哪种备份),备份上一次备份后所有发生变化的文件,增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,即备份后标记文件,换言之,清除存档属性;差异备份是针对完全备份来讲的,备份上一次的完全备份后发生变化的所有文件,差异备份过程中,只备份有标记的那些选中的文件和文件夹,它不清除标记,即备份后不标记为已备份文件,换言之,不清除存档属性。
在数据备份过程中,通常第一次备份为全备份,之后可以采用增量备份或者差异备份方式,那么在整个备份过程中,经常需要对备份的数据进行版本管理,如版本的合并与删除,目的是为了缩小存储空间,但还要保留完整的文件数据,因此,需要对文件版本进行管理,如需要合并文件版本以减少由于修改数据而导致的文件版本无限制增加,现有的备份方案通常是定期做一次全备份的基础上,删除中间版本时,可以将两次全备份之间的增量备份/差异备份数据删除,从而节省空间,而这样的版本合并或者删除需要再做一次全备份,相当于做一次初次备份,耗费空间大,时间长,备份效率不高。
另外,也有一些文件版本控制工具,如Subversion、VSS等,可以删除版本目录,但在后台有些版本中的文件内容实际上是不删除的,使得空间浪费。
发明人在实现本发明的过程中,发现现有技术中至少存在如下问题:
现有数据备份方法在进行文件版本管理时,需要周期性进行一次全备份,相当于每隔一段时间做一次初次备份,耗费空间大,备份效率不高。
发明内容
本发明要解决的技术问题是提供一种数据备份的版本管理方法及装置,使版本合并过程中,不需要针对每一个被合并的版本作全备份,提高备份效率,且合并后的老版本被删除,节省空间。
为解决上述技术问题,本发明的实施例提供技术方案如下:
一方面,提供一种数据备份的版本管理方法,包括:
接收版本管理指令;
根据所述版本管理指令,在合并版本范围内,若有修改的版本,则复制所述修改的版本中最新修改的版本至第一文件,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;
根据所述版本管理指令,在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至第二文件;
删除所述合并版本范围内的所有中间版本。
优选的,上述方法还包括:
根据所述版本管理指令,在所述第一版本范围内,若所述第一版本号为修改的版本的版本号,则复制所述第一版本号对应的版本至第三文件。
优选的,所述版本为每一次增量备份过程形成的版本。
优选的,所述增量备份过程包括:
比较当前备份过程中的新版本与前一次备份过程中的老版本的目录树,产生比较结果,根据所述比较结果建立所述新版本的目录树;
保存所述新版本的目录树。
优选的,所述比较当前备份过程中的新版本与前一次备份过程中的老版本的目录树,产生比较结果,根据所述比较结果建立所述新版本的目录树的步骤包括:
比较当前备份过程中的新版本与前一次备份过程中的老版本目录树,若前一次备份过程中的所述老版本节点被删除,则结束;
若前一次备份过程中的所述老版本节点被修改,则根据当前备份过程中的所述新版本的版本号和原文件ID建立新版本节点,并保存所述新版本的元数据和文件内容;
若当前备份过程中的所述新版本是新增节点,则新分配一版本号,并使用新分配的所述版本号建立新版本节点,并保存所述新版本的元数据和文件内容;
根据所述新版本节点建立所述新版本的目录树。
优选的,所述保存所述新版本的目录树的步骤包括:
建立版本文件的第一段,第二段,第三段以及第四段;
将所述新版本的所有目录及其子目录、文件保存到所述第一段;
将所述新增节点的ID号的起止范围保存到所述第二段;
将修改/新增的版本节点的ID号到元数据信息的偏移对照表,保存到所述第三段;
将版本中修改/新增的文件的ID号到数据文件路径对照表,保存到所述第四段。
优选的,所述删除所述合并版本范围内的所有中间版本的步骤具体为:
删除所述合并版本范围内的所有中间版本包括的元数据、文件内容以及版本号。
另一方面,还提供一种数据备份的版本管理装置,包括:
接收模块,用于接收版本管理指令;
第一复制模块,用于根据所述版本管理指令,在合并版本范围内,若有修改的版本,则复制所述修改的版本中最新修改的版本至第一文件,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;
第二复制模块,用于根据所述版本管理指令,在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至第二文件;
删除模块,用于删除所述合并版本范围内的所有中间版本。
优选的,上述装置还包括:
第三复制模块,用于根据所述版本管理指令,在所述第一版本范围内,若所述第一版本号为修改的版本的版本号,则复制所述第一版本号对应的版本至第三文件。
优选的,上述装置还包括:
备份模块,用于比较当前备份过程中的新版本与前一次备份过程中的老版本的目录树,产生比较结果,根据所述比较结果建立所述新版本的目录树;
保存模块,用于保存所述新版本的目录树。
优选的,所述备份模块包括:
处理模块,用于比较当前备份过程中的新版本与前一次备份过程中的老版本目录树,若前一次备份过程中的所述老版本节点被删除,则结束;若前一次备份过程中的所述老版本节点被修改,则根据当前备份过程中的所述新版本的版本号和原文件ID建立新版本节点,并保存所述新版本的元数据和文件内容;若当前备份过程中的所述新版本是新增节点,则新分配一版本号,并使用新分配的所述版本号建立新版本节点,并保存所述新版本的元数据和文件内容;
目录树建立模块,用于根据所述新版本节点建立所述新版本的目录树。
优选的,所述保存模块包括:
段建立模块,用于建立版本文件的第一段,第二段,第三段以及第四段;
第一保存模块,用于将所述新版本的所有目录及其子目录、文件保存到所述第一段;
第二保存模块,用于将所述新增节点的ID号的起止范围保存到所述第二段;
第三保存模块,用于将修改/新增的版本节点的ID号到元数据信息的偏移对照表,保存到所述第三段;
第四保存模块,用于将版本中修改/新增的文件的ID号到数据文件路径对照表,保存到所述第四段。
本发明的实施例具有以下有益效果:
上述方案只备份最新修改的版本,就能得到最新的完整的备份数据,无需进行一次全备份,可以使备份系统无限进行下去,提高了备份效率,又不担心历史版本越积越多导致性能低下;在最新修改的版本被复制完成后,合并版本范围内的所有中间版本被删除,这样,可以大大节省空间;且上述方法还可以在不影响其他版本数据的前提下进行任意版本合并。
附图说明
图1为本发明的实施例数据备份的版本管理方法的流程示意图;
图2为客户端将数据备份至服务器的结构示意图;
图3为各版本间的透示框图;
图4为本发明的实施例数据备份和版本管理装置的结构示意图;
图5为图4所示装置的一具体实现结构示意图;
图6为图5所示装置的一具体实现结构示意图。
具体实施方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明的实施例针对现有技术中数据备份方法耗费空间大,备份效率不高的问题,提供一种数据备份的版本管理方法及装置,使版本合并过程中,不需要针对每一个被合并的版本作全备份,提高备份效率,且合并后的老版本被删除,节省空间。
如图1所示,本发明的实施例数据备份的版本管理方法,包括:
步骤101,接收版本管理指令;
步骤102,根据所述版本管理指令,在合并版本范围内,若有修改的版本,则复制所述修改的版本中最新修改的版本至第一文件,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;
步骤103,根据所述版本管理指令,在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至所述第三文件;
步骤104,删除该合并版本范围内的所有中间版本。
优选的,该实施例中在步骤104之前,还可包括:
步骤105,根据所述版本管理指令,在所述合并版本范围外的所述第一版本范围内,若所述最新修改的版本的设置后所述老版本号(即第一版本号)为修改的版本的版本号,则复制所述老版本至所述第三文件(即复制所述第一版本号对应的版本至第三文件)。
该实施例通过将合并版本范围内的最新修改的版本复制到第一文件,同时设置该最新修改的版本的老版本为,合并版本范围外,版本号小于所述合并版本范围的老版本中,最新修改的版本值,即第一版本范围中最新修改的版本值;在合并版本范围内,最新修改的版本是删除的版本,则复制该合并版本范围外,版本号小于该合并版本范围中的最小版本号的所有老版本中,最新修改的版本至第二文件;以及在合并版本范围外,该合并范围内的最新修改的版本的设置后的老版本为修改的版本,将该老版本复制到第三文件;这样,只备份最新修改的版本,就能得到最新的完整的备份数据,无需进行一次全备份,提高了备份效率,在最新修改的版本被复制完成后,将合并版本范围内的中间版本全部删除,这里的删除是指将版本的版本号和版本数据全部删除,其中,版本数据包括:元数据和文件内容,大大节省空间。
在上述方法中,每一个版本是基于每一次增量备份过程形成的版本,在通常的数据备份流程中,第一次的备份是全备份,即将所有文件数据全部复制一遍,而之后的备份过程可以采用增量备份,即将发生改变的数据进行备份,没有改变的数据不备份,这样可以提高备份效率,但每一次备份的过程都会产生一个新的版本,最后会形成一个版本库,该版本库包含有多个版本,这样一来,如果版本太多,必然难以管理,需要对这些版本进行合并和删除管理,但还需要保证备份的数据为最新的最完整的数据,以便于在系统出现故障再次恢复时,能够恢复出最新修改的完整数据,因此,上述的方法实现了对数据备份流程中的版本合并和删除的有效管理。
下面再结合具体的实例说明上述版本合并的过程:
如图2所示,增量备份过程中,客户端将自己的数据备份至服务器,会将在客户端产生的版本数据以及每个版本中包含的文件数据复制到服务器端。
如图3所示,为每备份一次,产生一个版本的透示框图,其1-1,2-2,3-3,4-4,5-5,6-6为版本号,“+”代表该版本是相对于上一个版本增加了文件,“-”代表相对于上一个版本删除了文件,结合下面的表格对上述版本合并过程进行详细说明:
该表格中,横行的标号“1至12”表示版本号;纵行的标号“A至G”表示一次版本合并的实例;每个版本下对应的“+”号代表当前该版本相对于前一版本中增加了新文件,该版本在目录树中表示为新增节点;“-”号代表当前该版本中相对于前一版本删除了文件,该版本在目录树中表示为已删除节点。该表格中以合并版本6至12为例进行说明:
首先建立第一文件,即该表格中的tree.sec,该文件在具体实现时,是一个存储版本目录树的段,可以用一个永久存储空间来实现;
建立第二文件,即该表格中的deleted.sec,用于存储数据备份过程中已删除的版本节点,该文件也同样可用一段存储空间来实现,如一段永久内存空间或者一段硬盘空间,主要用于记录备份过程中文件被删除之后,老版本文件的完整数据内容;
建立第三文件,即该表格中的modified.sec,用于存储数据备份过程中修改的版本节点,该文件也可用一段永久存储空间来实现,如一段永久内存空间或者一段硬盘存储空间;
在合并版本6至版本12时,如果最新修改的版本是合并版本范围之外的版本,结束该版本合并流程,如A实例中,若版本5是最新修改的版本,但该版本5位于该版本合并范围(即版本6至12这个范围)之外,因此,无需进行版本合并流程;
在合并版本范围内,若有修改的版本,则复制所述修改的版本中最新修改的版本至所述第一文件,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围(如上述表格中的版本1-5的范围,而不是指大于合并版本范围内最大版本号的版本号及版本范围,如第一版本范围不是指版本13-16这样的范围)中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;
如B实例中,版本7位于合并版本范围内,且是最新修改的版本,因此,只复制最新修改的版本7至tree.sec中,同时,还需要设置该版本7的老版本号为第一版本号,该第一版本号为所述合并版本范围外第一版本范围中的最新修改的版本值,该第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号(即版本6),该第一版本范围在本例中是指“版本1至5这个范围”,第一版本号是版本4,但在该实例中,版本4本来就是该版本7的老版本,因此,此步骤可以具体执行时省略;
但对于C实例中,版本12为合并版本范围内最新修改的版本,因此,需要将版本12复制到tree.sec中,但该版本12的老版本是版本8,而该版本8在合并之后,是要被删除的,因此,合并之后,该版本12的老版本需要设置为版本3;
对于D实例和E实例也一样,需要复制合并版本范围内最新修改的版本7和版本12;
在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至所述第二文件;如F实例中,在合并版本范围内,最新修改的版本8中,将以前版本中修改的文件删除了,而且版本合并后,版本6也被删除,因此,该最新修改的版本8的老版本为版本5,且该版本5是第一版本范围中最新修改的版本,该版本5的数据应当是当前最新的最完整的数据,需要将该版本5复制到deleted.sec中;
在所述合并版本范围外的所述第一版本范围内,若所述最新修改的版本的设置后所述老版本为修改的版本(即第一版本号对应的版本为:修改的版本),则复制所述老版本至所述第三文件;如在B实例中,版本4为合并版本范围外第一版本范围内的最新修改的版本,且该版本4为版本7的老版本,因此需要将该版本4复制到modified.sec;同理,在C实例中,版本3为合并版本范围外的第一版本范围内的最新修改的版本,且该版本3为版本12的老版本,因此需要将该版本3复制到modified.sec;
这里的版本复制是指,将版本中的数据内容复制,即复制元数据和文件内容至相应的第一文件、第二文件或者第三文件。
这样tree.sec,modified.sec以及deleted.sec中保存的相关数据是最新的最完整的数据,将来如果系统出现故障,最新的最完整的数据可以从这些文件中得到恢复。
另外,基于上述版本合并的方法,其中增量备份过程包括:
步骤201,比较当前备份过程中的新版本与前一次备份过程中的老版本的目录树,产生比较结果,根据所述比较结果建立所述新版本的目录树;
步骤202,保存所述新版本的目录树。
其中,步骤201具体实现过程包括:
步骤2011,比较当前备份过程中的新版本与前一次备份过程中的老版本目录树,若前一次备份过程中的所述老版本节点被删除,则结束;
步骤2012,若前一次备份过程中的所述老版本节点被修改,则根据当前备份过程中的所述新版本的版本号和原文件ID建立新版本节点,并保存所述新版本的元数据和文件内容;即如果旧版本文件被修改,使用新版本号和原文件ID建立新节点,同时保存文件元数据和文件内容;
步骤2013,若当前备份过程中的所述新版本是新增节点,则新分配一版本号,并使用新分配的所述版本号建立新版本节点,并保存所述新版本的元数据和文件内容;即如果是新增节点,则新分配一个节点ID,并使用新版本号建立新节点,同时保存文件元数据和文件内容;
步骤2014,根据所述新版本节点建立所述新版本的目录树,且在建立新版本目录树的过程中更新索引段。
在上述步骤2012和步骤2013中,无论是版本节点被修改还是新增的版本节点,其版本号及该版本中的文件ID都是顺序递增的。
备份至服务器端版本形如“1-1,3-2”形式,含义是第一个数字为最新版本号,第二个为最老的版本号。如上述表格中的合并版本6至12后,形成的新的版本号为“12-6”。
而上述步骤202的具体实现过程包括:
步骤2021,建立版本文件的第一段,第二段,第三段以及第四段;
步骤2022,将所述新版本的所有目录及其子目录、文件保存到所述第一段;该第一段为版本文件的目录树段,保存所有目录及其子目录、文件,其中目录、文件可以引用旧版本(使用版本ID+目录/文件ID);
步骤2023,将所述新增节点的ID号的起止范围保存到所述第二段;该第二段为新增节点ID起止范围记录段,记录此版本中新增的节点ID的起始和结束值,属于该范围内的节点全部为此次备份过程中新增的节点;
步骤2024,将修改/新增的版本节点的ID号到元数据信息的偏移对照表,保存到所述第三段;该第三段为改变/新增节点ID到元数据信息偏移对照表段,段中每项保存一个节点ID到Offset(该节点在目录树文件中的偏移量)的对应关系;
步骤2025,将版本中修改/新增的文件的ID号到数据文件路径对照表,保存到所述第四段;该第四段为改变/新增文件ID到数据文件路径的对照表,文件中每项保存一个节点ID到文件名(保存该文件数据的文件的名称)的对应关系;
另外,在上述所有实例中,所有新增节点的ID号按顺序递增,以便按照二分法查找。
在本发明的上述实施例中,综合起来,目录树中的节点可分为三类:第一类为引用节点(版本号为某个旧版本号),表示引用一个旧版本中存在的节点,这些节点的详细信息保存在该旧版本号所对应的目录树文件中;第二类为新增节点,版本号为当前版本号,表示该节点是此版本才新增的,这些节点的详细信息保存在该节点后面;第三类为改变节点,版本号为当前版本号,表示该节点以前存在,但此版本中有所修改,这些节点的新的详细信息保存在该节点后面,同时保存了一个旧版本号,说明该改变节点是基于哪个旧版本修改的。
综上所述,本发明的实施例数据备份的版本管理方法,通过将合并版本范围内的最新修改的版本复制到第一文件,同时设置该最新修改的版本的老版本为,合并版本范围外,版本号小于所述合并版本范围中的最小版本号的老版本中的最新修改的版本值,即第一版本范围中的最新修改的版本;在合并版本范围内,最新修改的版本是删除的版本,则复制该合并版本范围外的第一版本范围中最新修改的版本至第二文件;以及在合并版本范围外的第一版本范围中,该合并范围内的最新修改的版本的设置后的老版本为修改的版本,将该老版本复制到第三文件;这样,只备份最新修改的版本,就能得到最新的完整的备份数据,无需进行一次全备份,提高了备份效率,在最新修改的版本被复制完成后,将合并版本范围内的中间版本全部删除,这样,节省了空间;本发明的实施例的版本管理方法实现了,在不影响其他版本数据的前提下进行任意版本合并,可以使备份系统可以无限进行下去,又不担心历史版本越积越多导致性能低下;同时合并范围内的所有中间版本被删除,可以大大节省空间。
如图4所示,本发明的实施例还提供一种数据备份的版本管理装置,
接收模块,用于接收版本管理指令;
第一复制模块,用于根据所述版本管理指令,在合并版本范围内,若有修改的版本,则复制所述修改的版本中最新修改的版本至所述第一文件,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;
第二复制模块,用于在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至所述第二文件;
删除模块,用于删除所述合并版本范围内的所有中间版本。
优选的,该装置还包括:
第三复制模块,用于根据所述版本管理指令,在所述第一版本范围内,若所述第一版本号为修改的版本的版本号,则复制所述第一版本号对应的版本至第三文件。
其中,上述方法可以用下述表格中的实例进行说明:
该表格中,标号“1至12”表示版本号;标号“A至G”表示一次版本合并的实例;每个版本下对应的“+”号代表当前该版本相对于前一版本中增加了新文件,该版本在目录树中表示为新增节点;“-”号代表当前该版本中相对于前一版本删除了文件,该版本在目录树中表示为已删除节点。
该表格中以合并版本6至12为例进行说明:
首先建立第一文件,即该表格中的tree.sec,该文件在具体实现时,是一个存储版本目录树的段,可以用一段永久存储空间来实现;
建立第二文件,即该表格中的deleted.sec,该文件也同样可用一段存储空间来实现,如一段内存空间或者一段硬盘空间,主要用于记录备份过程中文件被删除之后,老版本文件的完整数据内容;
建立第三文件,即该表格中的modified.sec,该文件也可用一段存储空间来实现,如一段内存空间或者一段硬盘存储空间;
在合并版本6至版本12时,如果最新修改的版本是合并版本范围之外的版本,结束该版本合并流程,如A实例中,若版本5是最新修改的版本,但该版本5位于该版本合并范围(即版本6至12这个范围)之外,因此,无需进行版本合并流程;
在合并版本范围内,若有修改的版本,则复制最新修改的版本至所述第一文件中,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;
如B实例中,版本7位于合并版本范围内,且是最新修改的版本,因此,只复制最新修改的版本7至tree.sec中,同时,还需要设置该版本7的老版本为第一版本号,该第一版本号为所述合并版本范围外第一版本范围中的最新修改的版本的版本号,该第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号(即版本6),该第一版本范围在本例中是指“版本1至5这个范围”,第一版本值是版本4,但在该实例中,版本4本来就是该版本7的老版本,因此,此步骤可以具体执行时省略;
但对于C实例中,版本12为合并版本范围内最新修改的版本,因此,需要将版本12复制到tree.sec中,但该版本12的老版本是版本8,而该版本8在合并之后,是要被删除的,因此,合并之后,该版本12的老版本需要设置为版本3;
对于D实例和E实例也一样,需要复制合并版本范围内最新修改的版本7和版本12;
在所述合并版本范围外的所述第一版本范围内,若所述最新修改的版本的设置后所述老版本为修改的版本(即第一版本号为修改的版本的版本号),则复制所述老版本至所述modified.sec;如在B实例中,版本4为合并版本范围外第一版本范围内的最新修改的版本,且该版本4为版本7的老版本,因此需要将该版本4复制到modified.sec;同理,在C实例中,版本3为合并版本范围外的第一版本范围内的最新修改的版本,且该版本3为版本12的老版本,因此需要将该版本3复制到modified.sec;
在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至所述deleted.sec;如F实例中,在合并版本范围内,最新修改的版本8中,将以前版本中修改的文件删除了,而且版本合并后,版本6也被删除,因此,该最新修改的版本8的老版本为版本5,且该版本5是第一版本范围中最新修改的版本,该版本5的数据应当是当前最新的最完整的数据,需要将该版本5复制到deleted.sec中;
这样tree.sec,modified.sec以及deleted.sec中保存的相关数据是最新的最完整的数据,将来如果系统出现故障,最新的最完整的数据可以从这些文件中得到恢复。
该实施例通过将合并版本范围内的最新修改的版本复制到第一文件,同时设置该最新修改的版本的老版本为,合并版本范围外,版本号小于所述合并版本范围中最小版本号的老版本中的最新修改的版本值,即第一版本范围中最新修改的版本;同时在合并版本范围内,最新修改的版本是删除的版本,则复制该第一版本范围的最新修改的版本至第二文件;以及在合并版本范围外的第一版本范围中,该合并范围内的最新修改的版本的设置后的老版本为修改的版本,将该老版本复制到第三文件;这样,只备份最新修改的版本,就能得到最新的完整的备份数据,无需进行一次全备份,提高了备份效率,在最新修改的版本被复制完成后,将合并版本范围内的中间版本全部删除,这样,节省了空间。
如图5所示,在上述实施例的基础上,上这版本管理装置还包括:
备份模块,用于比较当前备份过程中的新版本与前一次备份过程中的老版本的目录树,产生比较结果,根据所述比较结果建立所述新版本的目录树;
保存模块,用于保存所述新版本的目录树。
如图6所示,该备份模块在具体实现时,可以包括:
处理模块,用于比较当前备份过程中的新版本与前一次备份过程中的老版本目录树,若前一次备份过程中的所述老版本节点被删除,则结束;
若前一次备份过程中的所述老版本节点被修改,则根据当前备份过程中的所述新版本的版本号和原文件ID建立新版本节点,并保存所述新版本的元数据和文件内容;即如果旧版本文件被修改,使用新版本号和原文件ID建立新节点,同时保存文件元数据和文件内容;
若当前备份过程中的所述新版本是新增节点,则新分配一版本号,并使用新分配的所述版本号建立新版本节点,并保存所述新版本的元数据和文件内容;即如果是新增节点,则新分配一个节点ID,并使用新版本号建立新节点,同时保存文件元数据和文件内容;
目录树建立模块,用于根据所述新版本节点建立所述新版本的目录树。
上述保存模块在具体实现时可以包括:
段建立模块,用于建立版本文件的第一段,第二段,第三段以及第四段;
第一保存模块,用于将所述新版本的所有目录及其子目录、文件保存到所述第一段;该第一段为版本文件的目录树段,保存所有目录及其子目录、文件,其中目录、文件可以引用旧版本(使用版本ID+目录/文件ID);
第二保存模块,用于将所述新增节点的ID号的起止范围保存到所述第二段;该第二段为新增节点ID起止范围记录段,记录此版本中新增的节点ID的起始和结束值,属于该范围内的节点全部为此次备份过程中新增的节点;
第三保存模块,用于将修改/新增的版本节点的ID号到元数据信息的偏移对照表,保存到所述第三段;该第三段为改变/新增节点ID到元数据信息偏移对照表段,段中每项保存一个节点ID到Offset(该节点在目录树文件中的偏移量)的对应关系;
第四保存模块,用于将版本中修改/新增的文件的ID号到数据文件路径对照表,保存到所述第四段;该第四段为改变/新增文件ID到数据文件路径的对照表,文件中每项保存一个节点ID到文件名(保存该文件数据的文件的名称)的对应关系。
该实施例数据备份的版本管理装置,可以应用到客户端至服务器的数据备份过程中,通过将合并版本范围内的最新修改的版本复制到第一文件,同时设置该最新修改的版本的老版本为,合并版本范围外,版本号小于所述合并版本范围的最小版本号的老版本中的最新修改的版本值,即第一版本范围中最新修改的版本;同时在合并版本范围内,最新修改的版本是删除的版本,则复制该第一版本范围中最新修改的版本至第二文件;以及在合并版本范围外的第一版本范围内,该合并范围内的最新修改的版本的设置后的老版本为修改的版本,将该老版本复制到第三文件;这样,只备份最新修改的版本,就能得到最新的完整的备份数据,无需进行一次全备份,在不影响其他版本数据的前提下进行任意版本合并,可以使备份系统可以无限进行下去,又不担心历史版本越积越多导致性能低下;同时合并范围内的所有中间版本被删除,可以大大节省空间。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种数据备份的版本管理方法,其特征在于,包括:
接收版本管理指令;
根据所述版本管理指令,在合并版本范围内,若有修改的版本,则复制所述修改的版本中最新修改的版本至第一文件,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;
根据所述版本管理指令,在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至第二文件;
删除所述合并版本范围内的所有中间版本。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据所述版本管理指令,在所述第一版本范围内,若所述第一版本号为修改的版本的版本号,则复制所述第一版本号对应的版本至第三文件。
3.根据权利要求1所述的方法,其特征在于,所述版本为每一次增量备份过程形成的版本。
4.根据权利要求3所述的方法,其特征在于,所述增量备份过程包括:
比较当前备份过程中的新版本与前一次备份过程中的老版本的目录树,产生比较结果,根据所述比较结果建立所述新版本的目录树;
保存所述新版本的目录树。
5.根据权利要求4所述的方法,其特征在于,所述比较当前备份过程中的新版本与前一次备份过程中的老版本的目录树,产生比较结果,根据所述比较结果建立所述新版本的目录树的步骤包括:
比较当前备份过程中的新版本与前一次备份过程中的老版本目录树,若前一次备份过程中的所述老版本节点被删除,则结束;
若前一次备份过程中的所述老版本节点被修改,则根据当前备份过程中的所述新版本的版本号和原文件ID建立新版本节点,并保存所述新版本的元数据和文件内容;
若当前备份过程中的所述新版本是新增节点,则新分配一版本号,并使用新分配的所述版本号建立新版本节点,并保存所述新版本的元数据和文件内容;
根据所述新版本节点建立所述新版本的目录树。
6.根据权利要求5所述的方法,其特征在于,所述保存所述新版本的目录树的步骤包括:
建立版本文件的第一段,第二段,第三段以及第四段;
将所述新版本的所有目录及其子目录、文件保存到所述第一段;
将所述新增节点的ID号的起止范围保存到所述第二段;
将修改/新增的版本节点的ID号到元数据信息的偏移对照表,保存到所述第三段;
将版本中修改/新增的文件的ID号到数据文件路径对照表,保存到所述第四段。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述删除所述合并版本范围内的所有中间版本的步骤具体为:
删除所述合并版本范围内的所有中间版本包括的元数据、文件内容以及版本号。
8.一种数据备份的版本管理装置,其特征在于,包括:
接收模块,用于接收版本管理指令;
第一复制模块,用于根据所述版本管理指令,在合并版本范围内,若有修改的版本,则复制所述修改的版本中最新修改的版本至第一文件,设置所述最新修改的版本的老版本号为第一版本号,所述第一版本号为所述合并版本范围外的第一版本范围中的最新修改的版本的版本号,所述第一版本范围中的所有版本号小于所述合并版本范围中的最小版本号;
第二复制模块,用于根据所述版本管理指令,在所述合并版本范围内,若所述最新修改的版本是删除的版本,则复制所述第一版本范围中的最新修改的版本至第二文件;
删除模块,用于删除所述合并版本范围内的所有中间版本。
9.根据权利要求8所述的数据备份的版本管理装置,其特征在于,还包括:
第三复制模块,用于根据所述版本管理指令,在所述第一版本范围内,若所述第一版本号为修改的版本的版本号,则复制所述第一版本号对应的版本至第三文件。
10.根据权利要求8所述的数据备份的版本管理装置,其特征在于,还包括:
备份模块,用于比较当前备份过程中的新版本与前一次备份过程中的老版本的目录树,产生比较结果,根据所述比较结果建立所述新版本的目录树;
保存模块,用于保存所述新版本的目录树。
11.根据权利要求10所述的数据备份的版本管理装置,其特征在于,所述备份模块包括:
处理模块,用于比较当前备份过程中的新版本与前一次备份过程中的老版本目录树,若前一次备份过程中的所述老版本节点被删除,则结束;若前一次备份过程中的所述老版本节点被修改,则根据当前备份过程中的所述新版本的版本号和原文件ID建立新版本节点,并保存所述新版本的元数据和文件内容;若当前备份过程中的所述新版本是新增节点,则新分配一版本号,并使用新分配的所述版本号建立新版本节点,并保存所述新版本的元数据和文件内容;
目录树建立模块,用于根据所述新版本节点建立所述新版本的目录树。
12.根据权利要求11所述的数据备份的版本管理装置,其特征在于,所述保存模块包括:
段建立模块,用于建立版本文件的第一段,第二段,第三段以及第四段;
第一保存模块,用于将所述新版本的所有目录及其子目录、文件保存到所述第一段;
第二保存模块,用于将所述新增节点的ID号的起止范围保存到所述第二段;
第三保存模块,用于将修改/新增的版本节点的ID号到元数据信息的偏移对照表,保存到所述第三段;
第四保存模块,用于将版本中修改/新增的文件的ID号到数据文件路径对照表,保存到所述第四段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910092893 CN102023903B (zh) | 2009-09-10 | 2009-09-10 | 一种数据备份的版本管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910092893 CN102023903B (zh) | 2009-09-10 | 2009-09-10 | 一种数据备份的版本管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102023903A true CN102023903A (zh) | 2011-04-20 |
CN102023903B CN102023903B (zh) | 2012-12-19 |
Family
ID=43865224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910092893 Active CN102023903B (zh) | 2009-09-10 | 2009-09-10 | 一种数据备份的版本管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102023903B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339321A (zh) * | 2011-11-09 | 2012-02-01 | 上海盛霄云计算技术有限公司 | 具有版本控制的网络文件系统及方法 |
CN103324643A (zh) * | 2012-03-23 | 2013-09-25 | 联想(北京)有限公司 | 终端设备以及文件创建或修改方法 |
CN103605523A (zh) * | 2013-11-25 | 2014-02-26 | 上海爱数软件有限公司 | 一种文件内容历史版本自动生成与存储方法 |
CN104134109A (zh) * | 2014-06-24 | 2014-11-05 | 青岛海信网络科技股份有限公司 | 集成版本管理的工程组态方法及系统 |
CN104156278A (zh) * | 2014-08-01 | 2014-11-19 | 江苏大学 | 一种文件版本控制系统及其方法 |
CN105653544A (zh) * | 2014-11-12 | 2016-06-08 | 联想(北京)有限公司 | 一种信息处理装置和方法 |
CN107301019A (zh) * | 2017-06-22 | 2017-10-27 | 重庆大学 | 一种结合引用引用时间图和容器位表的垃圾回收方法 |
CN107733957A (zh) * | 2016-08-12 | 2018-02-23 | 北京融聚世界网络科技有限公司 | 分布式服务配置系统及版本号分配方法 |
CN109614371A (zh) * | 2018-10-23 | 2019-04-12 | 平安科技(深圳)有限公司 | 存储信息的方法、装置、计算机设备及存储介质 |
CN110399341A (zh) * | 2019-07-06 | 2019-11-01 | 深圳市山水原创动漫文化有限公司 | 一种动画参考文件存储和调用的方法及其系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100483365C (zh) * | 2003-08-05 | 2009-04-29 | 赛帕顿有限公司 | 仿真存储系统 |
CN1997972A (zh) * | 2003-09-30 | 2007-07-11 | 赛帕顿有限公司 | 支持即时卷恢复的仿真存储系统 |
CN100556211C (zh) * | 2004-06-22 | 2009-10-28 | 中兴通讯股份有限公司 | 一种移动通信网管系统的升级方法 |
-
2009
- 2009-09-10 CN CN 200910092893 patent/CN102023903B/zh active Active
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339321A (zh) * | 2011-11-09 | 2012-02-01 | 上海盛霄云计算技术有限公司 | 具有版本控制的网络文件系统及方法 |
CN103324643A (zh) * | 2012-03-23 | 2013-09-25 | 联想(北京)有限公司 | 终端设备以及文件创建或修改方法 |
CN103605523A (zh) * | 2013-11-25 | 2014-02-26 | 上海爱数软件有限公司 | 一种文件内容历史版本自动生成与存储方法 |
CN104134109A (zh) * | 2014-06-24 | 2014-11-05 | 青岛海信网络科技股份有限公司 | 集成版本管理的工程组态方法及系统 |
CN104156278A (zh) * | 2014-08-01 | 2014-11-19 | 江苏大学 | 一种文件版本控制系统及其方法 |
CN104156278B (zh) * | 2014-08-01 | 2017-06-27 | 江苏大学 | 一种文件版本控制系统及其方法 |
CN105653544A (zh) * | 2014-11-12 | 2016-06-08 | 联想(北京)有限公司 | 一种信息处理装置和方法 |
CN105653544B (zh) * | 2014-11-12 | 2019-06-25 | 联想(北京)有限公司 | 一种信息处理装置和方法 |
CN107733957A (zh) * | 2016-08-12 | 2018-02-23 | 北京融聚世界网络科技有限公司 | 分布式服务配置系统及版本号分配方法 |
CN107733957B (zh) * | 2016-08-12 | 2020-10-16 | 北京融聚世界网络科技有限公司 | 分布式服务配置系统及版本号分配方法 |
CN107301019A (zh) * | 2017-06-22 | 2017-10-27 | 重庆大学 | 一种结合引用引用时间图和容器位表的垃圾回收方法 |
CN107301019B (zh) * | 2017-06-22 | 2020-05-19 | 重庆大学 | 一种结合引用引用时间图和容器位表的垃圾回收方法 |
CN109614371A (zh) * | 2018-10-23 | 2019-04-12 | 平安科技(深圳)有限公司 | 存储信息的方法、装置、计算机设备及存储介质 |
CN109614371B (zh) * | 2018-10-23 | 2024-01-16 | 平安科技(深圳)有限公司 | 存储信息的方法、装置、计算机设备及存储介质 |
CN110399341A (zh) * | 2019-07-06 | 2019-11-01 | 深圳市山水原创动漫文化有限公司 | 一种动画参考文件存储和调用的方法及其系统 |
CN110399341B (zh) * | 2019-07-06 | 2022-12-06 | 深圳市山水原创动漫文化有限公司 | 一种动画参考文件存储和调用的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102023903B (zh) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023903B (zh) | 一种数据备份的版本管理方法及装置 | |
US10997035B2 (en) | Using a snapshot as a data source | |
US20120124003A1 (en) | Using versioning to back up multiple versions of a stored object | |
US7284150B2 (en) | System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data | |
US7899789B2 (en) | System for automatically shadowing data and file directory structures for a plurality of network-connected computers using a network-attached memory | |
US7310654B2 (en) | Method and system for providing image incremental and disaster recovery | |
US11914485B2 (en) | Restoration of specified content from an archive | |
EP2756434B1 (en) | Efficient data recovery | |
CN101777018B (zh) | 一种复制与快照结合的Windows系统保护方法 | |
KR100556594B1 (ko) | 데이터베이스에 관한 방법 | |
US7134041B2 (en) | Systems and methods for data backup over a network | |
US7979404B2 (en) | Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data | |
AU2005203663B2 (en) | Method and system for synthetic backup and restore | |
CN102236589B (zh) | 一种基于数字标识符管理增量文件的数据保护方法 | |
US7849111B2 (en) | Online incremental database dump | |
US20090089523A1 (en) | Techniques for virtual archiving | |
US20100174684A1 (en) | System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage | |
EP3796174B1 (en) | Restoring a database using a fully hydrated backup | |
US9002800B1 (en) | Archive and backup virtualization | |
CN102388369B (zh) | 源自单一备份的粒度应用程序数据的生命周期 | |
WO1998035285A2 (en) | Database/template driven file selection for backup programs | |
US10013424B2 (en) | Efficient building of restore list | |
CN104714859A (zh) | 一种海量文件的快速备份与恢复的方法 | |
US8126851B2 (en) | System for automatically recovering a computer memory using shadowed data and file directory structures | |
JP2006018796A (ja) | データ処理方法および装置並びにストレージ装置およびその処理プログラム |
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 |