CN100464307C - 一种实现数据备份和恢复的方法及系统 - Google Patents

一种实现数据备份和恢复的方法及系统 Download PDF

Info

Publication number
CN100464307C
CN100464307C CNB2006100784300A CN200610078430A CN100464307C CN 100464307 C CN100464307 C CN 100464307C CN B2006100784300 A CNB2006100784300 A CN B2006100784300A CN 200610078430 A CN200610078430 A CN 200610078430A CN 100464307 C CN100464307 C CN 100464307C
Authority
CN
China
Prior art keywords
snapshot
data
unit
constantly
snapshot unit
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.)
Expired - Fee Related
Application number
CNB2006100784300A
Other languages
English (en)
Other versions
CN101078999A (zh
Inventor
任永坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Xinhe Data Technology Co.,Ltd.
Original Assignee
任永坚
陈烨
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 任永坚, 陈烨 filed Critical 任永坚
Priority to CNB2006100784300A priority Critical patent/CN100464307C/zh
Publication of CN101078999A publication Critical patent/CN101078999A/zh
Application granted granted Critical
Publication of CN100464307C publication Critical patent/CN100464307C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种实现数据备份和恢复的方法,在触发快照事件发生后包括:以触发快照事件发生时刻作为快照时刻,记录本次触发快照事件;在下次触发快照事件发生前,如果收到对数据单元进行修改的指令,则判断快照单元是否记录过待修改数据单元的地址,并根据判断结果执行所述指令;在数据恢复时还包括:读取当前时刻到待恢复时刻之间分配的快照单元,按照时间顺序,如果快照单元为未处理快照单元,则将快照单元中记录的数据写入到快照单元记录地址的数据单元中。本发明还公开了一种实现数据备份和恢复的装置。采用本发明所提供的方案,可以减少数据备份和恢复过程中占用的系统处理资源和备份存储介质资源,有利于实现数据的持续保护。

Description

一种实现数据备份和恢复的方法及系统
技术领域
本发明涉及数据存储技术,特别是涉及一种实现数据备份和恢复的方法及系统。
背景技术
计算机的数据是存储在计算机的存储介质上的。对数据进行修改是在存储介质上用新数据覆盖原数据,这样,如果没有特殊的手段,原数据是无法被恢复的。但是实际中的很多应用都需要能够恢复原数据。例如,个人电脑用户执行某些操作导致系统崩溃,这时候就需要恢复执行这些操作之前的原系统数据。通常实现数据恢复是采用定期备份的方法,即定期的将数据备份到备份存储介质上,如果需要恢复,又将数据从备份存储介质上导入原存储介质。这种方法的缺点在于,无论是进行数据备份还是进行数据恢复时,无论数据是否发生变化,一律进行备份或恢复,一方面造成备份存储介质的浪费,另一方面占用系统的处理能力。
现有技术解决这一问题的方法是采用如图1所示的称为快照备份的方法,该方法的核心思想是只记录发生变化的数据。该方法的流程图如图1所示,采用该方法时存储介质的存储状态示意图如图2所示。
步骤101:以快照时刻数据存储区的数据作为参考数据。
预先设置触发快照的事件,当这些事件发生时,就触发一次快照,然后执行步骤101到步骤111。这里,触发快照的事件发生的时刻称为快照时刻。
步骤102:建立新的快照区,快照区所有快照单元的状态标志位均为未发生变化。
在图2中,第一快照区是在第一快照时刻建立的,第二快照区是在第二快照时刻建立的,第三快照区是在第三快照时刻建立的。快照区的快照单元与数据存储区的数据单元是一一对应的。在快照区内部,为每个快照单元配置一个状态标志位,状态标志位用来表示与之对应的快照单元是否经过修改。所述状态标志位可以是一个二进制位,该二进制位为1的时候表示已修改,该二进制位为0的时候表示未修改。新建立的快照区所有快照单元的状态标志位都为未修改。
步骤103:判断是否接收到对数据存储区的数据单元进行修改的指令,如果是则执行步骤104,否则执行步骤110。
一个对数据存储区的数据单元进行修改的指令应该至少包括两部分:要修改的数据单元的地址以及要写入的数据。
步骤104到步骤108:根据所述要修改的数据单元的地址,确定该数据单元在已经建立的所有快照区中分别对应的快照单元;然后对所确定的每个快照单元,分别判断其状态标志位是否为未修改,如果是则将要修改的数据单元的当前值写入该快照单元,并且将该快照单元的状态标志位设置为已修改,否则保持该快照单元的当前值。
例如在图2中,在第一快照时刻,新建立的第一快照区中,所有快照单元的状态标志位都为未修改。对比图2(a)中参考数据和变化后的数据可以看出,从第一快照时刻到第二快照时刻之间,所述对数据单元进行修改的指令,对数据存储区的0001数据单元和0002数据单元进行了修改。因此在第二快照时刻,第一快照区如图2(a)所示。
当第二快照时刻的快照被触发时,第一快照区中与数据存储区的0001数据单元和0002数据单元对应的快照单元的状态标志位为已修改,与数据存储区的0003数据单元、0004数据单元对应的快照单元的状态标志位都为未修改;根据步骤102所述,第二快照区是新建的快照区,所有快照单元的状态标志位都为未修改。
从对图2(b)中参考数据和变化后数据的比较可以看出,在第二快照时刻到第三快照时刻之间,所述对数据单元进行修改的指令对数据存储区的0002数据单元和0003数据单元进行了修改。对于第一快照区,由于与0002数据单元对应的快照单元的状态标志位为已修改,因此保持该快照单元的当前值;而与0003数据单元对应的快照单元的状态标志位为未修改,因此将0003数据单元的当前值A写入第一快照区中与0003数据单元对应的快照单元中,并且将该快照单元所对应的状态标志位设置为已修改。对于第二快照区,则将0002数据单元的当前值B写入第二快照区中与0002数据单元对应的快照单元中,并且将该快照单元所对应的状态标志位设置为已修改;将0003数据单元的当前值A写入第二快照区中与0003数据单元对应的快照单元中,并且将该快照单元所对应的状态标志位设置为已修改。因此,在第三快照时刻,第一快照区和第二快照区如图2(b)所示。
步骤109:执行所述对数据存储区进行修改的指令。
步骤110:判断是否到达下一快照时刻,如果到达,则执行步骤111,否则执行步骤103。
步骤111:结束本次快照流程。
事实上,下次快照时刻后的操作就是重复步骤101到步骤111。
在进行数据恢复时,如果需要恢复到某一快照时刻,只需要将该快照时刻所对应的快照区中,状态标志位为已修改的快照单元的值,分别写入到对应的数据单元即可。
从以上对现有技术的描述可以看出,现有技术只是部分解决了在数据备份和恢复时大量占用系统资源的问题。这是因为,在数据备份时,在多个快照被触发,已经建立了多个快照区的情况下,每接受到一个对数据存储区的数据单元进行修改的指令,需要对所有已建立快照区中,与待修改数据单元对应的快照单元的状态标志位进行校验;然后,将要修改的数据单元的当前值写入状态标志位为未修改的快照单元;并且,更新这些快照单元的状态标志位为已修改。这样,在对数据单元的一次写操作中,就需要多次对所述状态标志位进行读写和校验,以及多次对快照单元的数据进行写操作,从而仍然会大量占用系统的处理能力,降低系统的运行效率。已经建立的快照区越多,系统运行效率的降低就越严重。
而且,现有技术并没有解决浪费备份存储介质资源的问题,因为在每次快照时刻,都需要分配和数据存储区具有相同容量或一定比例关系的固定存储资源以建立该快照时刻所对应的快照区。建立的快照区越多,占用的备份存储介质资源就越多。
正是由于上述技术上的制约,在现有的快照技术中,快照区的数量受到限制,很难实现数据的持续保护。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现数据备份以及恢复的方法和系统,既能够减少在数据备份和数据恢复时所占用的系统处理资源,提高数据备份和数据恢复时的系统运行效率,又能够减少实现数据恢复所需要的备份存储介质,从而实现数据的持续保护。
为了达到上述目的,本发明的提供了一种实现数据备份的方法,其特征在于,设置触发快照的事件,每次触发快照的事件发生后,该方法包括:
A、以触发快照的事件发生的时刻作为快照时刻,记录本次触发快照的事件;
B、判断是否接收到对数据单元进行修改的指令,如果收到,则执行步骤C,否则,执行步骤D;
C、判断快照单元是否记录过待修改数据单元的地址,如果是,则执行对数据单元进行修改的指令;如果不是,则为待修改数据单元分配快照单元之后,执行对数据单元进行修改的指令;
D、判断是否发生下一次触发快照的事件,如果发生,则结束当前流程,否则返回执行步骤B。
其中,步骤B和C中,所述对数据单元进行修改的指令包括待修改数据单元的地址和要写入待修改数据单元的数据。
其中,步骤C中,所述执行所述对数据单元进行修改的指令是将所述指令中所包含的要写入待修改数据单元的数据写入到待修改数据单元。
其中,步骤C中,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值。
其中,步骤A之前,还包括步骤:为每个数据单元配置一个状态标志位,步骤A进一步包括:
设置所有数据单元的状态标志位为未修改;
步骤C中,执行对数据单元进行修改的指令后进一步包括:设置待修改数据单元所对应的状态标志位为已修改。
其中,步骤D在下一次触发快照的事件发生后,在结束当前流程前进一步包括:
判断是否在所述本次触发快照的事件和所述下一次触发快照的事件之间,收到清理快照单元的指令,如果收到,则清理已经分配的快照单元,否则结束当前流程。
其中,所述清理已经分配的快照单元为:
将已经分配的快照单元复制到离线存储器上,然后释放已经分配的快照单元所占用的存储空间;
设定门限值,所述清理已经分配的快照单元为:
释放对应于最早的门限值次触发快照事件所对应的快照单元所占用的存储空间;
设定门限值,所述清理已经分配的快照单元为:
将对应于最早的门限值次触发快照事件所对应的快照单元复制到离线存储器上,然后释放其所占用的存储空间。
为了达到上述目的,本发明还提供了一种实现数据备份和恢复的方法,其特征在于,设置触发快照的事件,每次触发快照的事件发生后,该方法包括:
U、以触发快照的事件发生的时刻作为快照时刻,记录本次触发快照的事件;在下次触发快照的事件发生前,如果收到对数据单元进行修改的指令,则判断快照单元是否记录过待修改数据单元的地址,如果是,则执行所述对数据单元进行修改的指令;如果不是,则为待修改数据单元分配快照单元,记录待修改数据单元的地址以及当前值,然后执行所述对数据单元进行修改的指令;
在数据恢复时,该方法还包括:
V、读取当前时刻到待恢复时刻之间所分配的快照单元,按照时间顺序,判断快照单元是否为已处理快照单元,如果不是,则将快照单元中所记录的数据写入到快照单元所记录地址的数据单元中。
其中,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值;
步骤V中,所述将快照单元中所记录的数据写入到快照单元所记录地址的数据单元中为:
V11、将当前时刻与离当前时刻最近的快照时刻之间分配的快照单元作为未处理快照单元;
V12、选择未处理的快照单元中最靠近当前时刻的快照单元,将所述快照单元的数据区所记录的数据,写入到所述快照单元的地址区所记录的数据单元中,然后将所述快照单元标记为已处理快照单元;
V13、判断当前时刻与离当前时刻最近的快照时刻之间的快照单元是否全部为已处理快照单元,如果是,则执行步骤V14,否则返回执行步骤V12;
V14、判断所述离当前时刻最近的快照时刻,是否为待恢复时刻,如果是则结束当前流程,否则将离当前时刻最近的快照时刻作为新的当前时刻,返回执行步骤V11;
V21、为每个数据单元分配对应的暂存单元,并且将数据单元中的数据复制到对应的暂存单元中;
V22、将当前时刻与离当前时刻最近的快照时刻之间分配的快照单元作为未处理快照单元;
V23、选择未处理的快照单元中最靠近当前时刻的快照单元,将所述快照单元的数据区所记录的数据,写入到与所述快照单元的地址区所记录的数据单元对应的暂存单元中,然后将所述快照单元标记为已处理快照单元;
V24、判断当前时刻与离当前时刻最近的快照时刻之间的快照单元是否全部为已处理快照单元,如果是,则执行步骤V25,否则返回执行步骤V22;
V25、判断所述离当前时刻最近的快照时刻,是否为待恢复时刻,如果是则结束当前流程,否则将离当前时刻最近的快照时刻作为新的当前时刻,返回执行步骤V21。
其中,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值,所述按照分配所述快照单元的时间顺序,将快照单元中所记录的数据写入到快照单元所记录地址的数据单元中为:
V31、将当前时刻与离当前时刻最近的快照时刻之间分配的快照单元作为未处理快照单元;
V32、选择未处理的快照单元中的任意一个快照单元,将所述快照单元的数据区所记录的数据,写入到所述快照单元的地址区所记录的数据单元中,然后将所述快照单元标记为已处理快照单元;
V33、判断当前时刻与离当前时刻最近的快照时刻之间的快照单元是否全部为已处理快照单元,如果是,则执行步骤V34,否则返回执行步骤V32;
V34、判断所述离当前时刻最近的快照时刻,是否为待恢复时刻,如果是则结束当前流程,否则将离当前时刻最近的快照时刻作为新的当前时刻,返回执行步骤V31;
V41、为每个数据单元分配对应的暂存单元,并且将数据单元中的数据复制到对应的暂存单元中;
V42、将当前时刻与离当前时刻最近的快照时刻之间分配的快照单元作为未处理快照单元;
V43、选择未处理的快照单元中任意一个快照单元,将所述快照单元的数据区所记录的数据,写入到与所述快照单元的地址区所记录的数据单元对应的暂存单元中,然后将所述快照单元标记为已处理快照单元;
V44、判断当前时刻与离当前时刻最近的快照时刻之间的快照单元是否全部为已处理快照单元,如果是,则执行步骤V45,否则返回执行步骤V42;
V45、判断所述离当前时刻最近的快照时刻,是否为待恢复时刻,如果是则结束当前流程,否则将离当前时刻最近的快照时刻作为新的当前时刻,返回执行步骤V41。
其中,在数据恢复时,在步骤V之前进一步包括:
设置所要恢复的数据单元为不可由所述对数据单元进行修改的指令进行修改。
其中,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值;
步骤V中,所述将快照单元所记录的数据写入到快照单元所记录地址的数据单元中为:
V51、将所有待恢复数据单元作为未处理数据单元,将当前时刻与待恢复时刻之间分配的快照单元作为未处理快照单元;
V52、选择未处理快照单元中离待恢复时刻最近的快照单元,判断所述快照单元的地址区所记录的数据单元是否为未处理数据单元,如果是,则执行步骤V53,否则执行步骤V54;
V53、将所述快照单元的数据区所记录的数据,写入到所述快照单元的地址区所记录的数据单元中,然后将所述快照单元的地址区所记录的数据单元标记为已处理;
V54、将所述快照单元标记为已处理快照单元,并判断当前时刻与待恢复时刻之间分配的快照单元是否都为已处理快照单元,如果是则结束当前流程,否则返回执行步骤V52;
V61、为每个数据单元分配对应的暂存单元,并且将数据单元中的数据复制到对应的暂存单元中;
V62、将所有待恢复数据单元作为未处理数据单元,将当前时刻与待恢复时刻之间分配的快照单元作为未处理快照单元;
V63、选择未处理快照单元中离待恢复时刻最近的快照单元,判断所述快照单元的地址区所记录的数据单元是否为未处理数据单元,如果是,则执行步骤V64,否则执行步骤V65;
V64、将所述快照单元的数据区所记录的数据,写入到与所述快照单元的地址区所记录的数据单元对应的暂存单元中,然后将所述快照单元的地址区所记录的数据单元标记为已处理;
V65、将所述快照单元标记为已处理快照单元,并判断当前时刻与待恢复时刻之间分配的快照单元是否都为已处理快照单元,如果是则结束当前流程,否则返回执行步骤V63。
其中,所述步骤U进一步包括:
判断是否在所述本次触发快照的事件和所述下次触发快照的事件之间,收到清理快照单元的指令,如果收到,则清理已经分配的快照单元,否则结束当前流程。
其中,所述清理已经分配的快照单元为:
将已经分配的快照单元复制到离线存储器上,然后释放已经分配的快照单元所占用的存储空间;
将对应于最早的门限值次触发快照事件所对应的快照单元复制到离线存储器上,然后释放其所占用的存储空间。
其中,在数据恢复时,在步骤V之前进一步包括:
判断待恢复时刻所对应的快照单元是否已经复制到离线存储器上,如果是则将离线存储器上,待恢复时刻以后所分配的快照单元复制到在线存储器上,然后执行步骤V,否则直接执行V。
为了达到上述目的,本发明还提供了一种实现数据备份和恢复的系统,包括数据存储区,其特征在于,该系统进一步包括:
备份管理器,用于根据触发快照的事件以及对数据存储区的数据单元进行修改的指令,在快照区已记录过待修改数据单元的地址时,执行对数据存储区的数据单元进行修改的指令;在快照区没记录待修改数据单元的地址时,为待修改数据单元分配快照单元之后,执行所述指令;
快照区,用于记录触发快照的事件,以及数据存储区发生变化的数据单元的地址以及所述数据单元的当前值;
恢复管理器,用于读取当前时刻到待恢复时刻之间所分配的快照单元,按照时间顺序,判断快照区的快照单元是否为已处理快照单元,如果不是,则将快照单元所记录的数据写入到数据单元。
其中,该系统进一步包括:
快照区管理器,用于根据预先设定的管理策略,管理快照区的数据,并且与离线存储区交互,对快照区的数据进行备份;
离线存储区,用于备份快照区的数据。
其中,所述备份管理器包括:
快照触发模块,用于检测触发快照的事件,并将与触发快照的事件相关的信息发送给快照区修改模块;
指令接口模块,用于接收对数据存储区的数据单元进行修改的指令,在快照区已记录过待修改数据单元的地址时,执行对数据存储区的数据单元进行修改的指令;在快照区没记录待修改数据单元的地址时,为待修改数据单元分配快照单元,将所述指令中待修改数据单元的地址和当前值发送给快照区修改模块,之后,执行所述指令;
快照区修改模块,用于将快照触发模块发送的与触发快照的事件相关的信息,和/或,指令接口模块所发送的待修改数据单元的地址以及当前值写入快照区。
其中,所述指令接口模块进一步包括:
逻辑判断子模块,用于判断是否需要将待修改数据单元的地址和当前值记录在快照区中。
其中,该系统进一步包括:
暂存区,用于存放数据恢复过程中的中间数据;
所述恢复管理器进一步包括:
暂存区接口模块,用于在数据恢复开始时,将数据存储区的数据复制到暂存区;在进行数据恢复时,将恢复过程的中间数据写入到暂存区;在恢复完成后,将暂存区数据复制到数据存储区。
采用本发明所提供的技术方案,快照区是一个动态扩展的存储区域,快照区的存储资源是根据数据记录的需要,动态分配的。在每个快照时刻,并不预先分配与整个数据存储区具有相同容量或一定比例关系的存储资源作为快照区,而只是在快照区中分配一个快照单元,记录下触发当前快照的事件。然后在收到对数据存储区进行修改的指令时,只有在该数据单元在本次快照后未发生过变化的情况下,才会在快照区中分配一个快照单元,将所述要修改的数据单元的地址,以及要修改的数据单元的当前值记录在新分配的快照单元中。在两个快照时刻之间,只有发生变化的数据单元,才会在快照区中对应最多一个快照单元。这样就节省了对备份存储介质资源的占用。
并且,相对于现有的快照技术,在新的快照被触发以后,新快照时刻之前所分配的快照单元可以进一步存储到磁带这样的离线存储介质上,从而释放这些快照单元所占用的在线存储介质资源,进一步减少对在线存储介质资源的占用。
而在系统处理资源的占用方面,在多个快照被触发的情况下,每接受到一个对数据存储区的数据单元进行修改的指令,本发明的技术方案所要执行的操作,只是在快照区中本次快照被触发后所分配的快照单元中,进行一次针对数据单元地址的遍历和比较,最多再加上一次对新分配的快照单元的写入操作。因此,一次数据修改的完成所需要占用的系统处理资源与已经被触发的快照数无关,从而节约了系统的处理能力,提高了系统的处理效率。
由于本发明在占用系统处理资源和占用备份存储介质资源这两方面都得到了改善,因此快照的数量可以根据需要设定,有利于实现数据的持续保护。
附图说明
图1是现有的快照备份技术的流程图;
图2是现有的快照备份技术存储介质的存储状态示意图;
图3是本发明所提供的实现数据备份方法的流程图;
图4是本发明所提供的实现数据备份方法存储介质的存储状态示意图;
图5是本发明所提供的实现数据恢复的方法实施例一的流程图;
图6是本发明所提供的实现数据恢复的方法实施例一存储介质的存储状态示意图;
图7是本发明所提供的实现数据恢复的方法实施例二的流程图;
图8是本发明所提供的实现数据恢复的方法实施例二存储介质存储状态示意图;
图9是本发明提供的实现数据备份和恢复的系统的方框图。
具体实施方式
本发明的核心思想是:采用基于快照的数据备份和恢复技术,其中在数据备份时,将一次快照后首次发生变化的数据单元地址和变化前的值,记录在快照区中的一个快照单元中;在数据恢复时,读取当前时刻和待恢复时刻之间所有快照单元,按照时间顺序对数据存储区进行数据恢复。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
请参考图3和图4,图3是本发明所提供的实现数据备份方法的流程图,图4是本发明所提供的实现数据备份方法存储介质的存储状态示意图。该方法在数据备份时包括以下步骤:
步骤301:以本次快照时刻数据存储区的数据作为参考数据,并且在快照区中记录触发事件。
预先设置触发快照的事件,当这些事件发生时,就触发一次快照,然后执行步骤301到步骤309。所述触发快照事件可以是到达预先设定的时刻,也可以是收到预先设定的指令,或者即将进行预先设定的操作。可以用索引号表示触发快照的事件,例如到达预先设定的时刻为001,接收到用户的快照指令为010,即将对系统进行重大改动为011等等。并且,对于不同的触发快照的事件,还可以根据需要附加不同的信息。例如对于到达预先设定的时刻所触发的快照,可以进一步记录所到达的时刻;对于即将对系统进行重大改动,还可以进一步记录所进行的改动的类型,这些附加信息也可以以索引号表示。
快照区和数据存储区可以位于同一物理存储介质上,也可以分别位于不同的物理存储介质上,但是必须是在线存储介质。所谓在线存储介质,就是系统可以直接对该存储介质进行读写操作,而不用先将该存储介质接入到系统中,然后才能进行读写操作。相对的,需要先接入系统然后才能进行读写操作的存储介质称为离线存储介质。
步骤302:判断是否接收到对数据存储区的数据单元进行修改的指令,如果收到,则执行步骤303,否则执行步骤306。
步骤303:判断指令中所指定的数据单元在本次快照后是否已经在快照区中进行过记录,如果已经进行过记录,则执行步骤305,否则执行步骤304。
如前所述,所述对数据存储区的数据单元进行修改的指令中,至少包含所要修改的数据单元的地址以及要写入该数据单元的数据。而在快照区中记录的是所要修改的数据单元的地址,以及该数据单元的当前值。因此,只要比较本次快照后所分配的快照单元所记录的数据单元地址中,是否已经有所述指令中所包含的地址,就可以判断出所述指令所指定的数据单元在本次快照后已经在快照区中进行过记录。如果本次快照后所分配的快照单元所记录的数据单元地址中,已经有所述指令中所包含的地址,那么就认为所述指令所指定的数据单元在本次快照后已经在快照区中进行过记录。
另外一种判断所述指令中所指定的数据单元在本次快照后是否已经在快照区中进行过记录的方法是,为每个数据单元配置一个状态标志位,状态标志位用来表示与之对应的数据单元是否经过修改。所述状态标志位可以是一个二进制位,该二进制位为1的时候表示已修改,该二进制位为0的时候表示未修改。当一次快照被触发后,设置所有数据单元的状态标志位为未修改;在根据所述指令对特定的数据单元进行过修改后,设置该数据单元所对应的状态标志位为已修改。
步骤304:在快照区中分配一个快照单元,记录所述指令中所包含的数据单元地址以及该数据单元的当前值。
所述快照单元至少包括地址区和数据区,其中地址区用于记录所述指令中所包含的数据单元地址,数据区用于记录该数据单元的当前值。
步骤305:执行所述接收到对数据存储区的数据单元进行修改的指令。
这一步实际上就是将所述指令中所包含的待写入数据,写入到所述指令所指定的数据单元。
步骤306:判断是否到达下一快照时刻,如果是则执行步骤307,否则返回执行步骤302。
这一步实际上是判断是否发生下一次触发快照的事件。
步骤307:判断是否收到清理快照单元的指令,如果收到,则执行步骤308,否则执行步骤309。
这里所说的收到清理快照单元的指令,指的是在步骤301所述本次快照时刻到步骤306所述下一快照时刻之间收到过清理快照单元的指令。
由于快照区的数据会随时间逐渐增多,如果不进行清理,会占用过多的在线存储资源。因此,可以设定快照区的最大存储容量,如果当前快照区的数据接近快照区的最大存储容量时,就发出清理快照单元的指令;也可以设置一个清理间隔,当从上一次清理开始,所经过的时间到达清理间隔以后,就发出清理快照单元的指令。
步骤308:将快照区中的数据复制到离线存储器上,并清空快照区。
作为一种替代方案,可以预先设置一个门限值。在执行步骤308时,不是对快照区中的所有快照单元进行复制并清空快照区,而是将快照区中,最早的门限值个快照时刻所对应的快照单元复制到离线存储器上,然后释放所述最早的门限值个快照时刻所对应的快照单元所占用的存储空间。当然,也可以直接释放快照区中所述最早的门限值个快照时刻所对应的快照单元所占用的存储空间。由于快照时刻和触发快照的事件是一一对应的,因此所述最早的门限值个快照时刻所对应的快照单元,也就是最早的门限值次触发快照的事件所对应的快照单元。
例如,在图4中,如果第一快照时刻是最早的快照时刻,而所述门限值为1,并且在第二快照时刻和第三快照时刻之间收到了清理快照区的指令,那么在第三快照到达时,就将用于记录第一时刻触发快照的事件的快照单元,以及第一快照时刻和第二快照时刻之间所分配的两个快照单元复制到离线存储器上,然后释放这三个快照单元所占用的存储空间。如果在第三快照时刻和第四快照时刻之间再次收到了清理快照区的指令,那么在第四快照到达时,就将用于记录第二时刻触发快照的事件的快照单元,以及第二快照时刻和第三快照时刻之间所分配的两个快照单元复制到离线存储器上,然后释放这三个快照单元所占用的存储空间。
当然,步骤307和步骤308都是可选的。
步骤309:结束当前流程。
事实上,下次快照时刻后的操作就是重复步骤301到步骤309。
作为第一种替代方案,可以省略步骤303。收到对数据存储区的数据单元进行修改的指令时,无论指令中所指定的数据单元在本次快照被触发后是否经过修改,都在快照区中分配一个快照单元,记录待修改数据单元的地址以及当前值。
作为第二种替代方案,在设置所述触发快照的事件时,可以将收到对数据存储区的数据单元进行修改的指令,设置为触发快照的事件。也就是说,每收到一次对数据存储区的数据单元进行修改的指令,就触发一次快照,记录触发快照事件,并且分配一个快照单元记录待修改数据单元的地址以及当前值。在这种情况下,步骤303所作的判断,其结果总是为否,因此步骤303也可以省略。
在图4(a)中,第一快照时刻后,首先执行步骤301,在快照区中记录第一快照时刻的触发事件。假设在第一快照时刻后,在到达第二快照时刻前,收到两条对数据存储区的数据单元进行修改的指令。第一条指令,是将数据单元0001的值,从当前的A修改为B。这样,经过步骤302和步骤303的判断后,执行步骤304,分配一个快照单元,记录下数据单元0001的地址以及数据单元0001的当前值A,然后执行步骤305将数据单元0001的值修改为B。由于未到达下一快照时刻,返回执行步骤302。
第二条对数据存储区的数据单元进行修改的指令,是将数据单元0002的值,从当前的A修改为B。这样,经过步骤302和步骤303的判断后,执行步骤304,分配一个快照单元,记录下数据单元0002的地址以及数据单元0002的当前值A,然后执行步骤305将数据单元0002的值修改为B。接下来到达下一快照时刻,结束当前流程,重新执行步骤301。如果在此之前收到了清理快照单元的指令,则将快照区的数据复制到离线存储器上,然后清空快照区。
在图4(b)中,第二快照时刻后,首先执行步骤301,在快照区中记录第二快照时刻的触发事件。假设在第二快照时刻后,在到达第三快照时刻前,收到两条对数据存储区的数据单元进行修改的指令。第一条指令,是将数据单元0002的值,从当前的B修改为C。这样,经过步骤302和步骤303的判断后,执行步骤304,分配一个快照单元,记录下数据单元0002的地址以及数据单元0002的当前值B,然后执行步骤305将数据单元0002的值修改为C。由于未到达下一快照时刻,返回执行步骤302。
第二条对数据存储区的数据单元进行修改的指令,是将数据单元0003的值,从当前的A修改为C。这样,经过步骤302和步骤303的判断后,执行步骤304,分配一个快照单元,记录下数据单元0003的地址以及数据单元0003的当前值A,然后执行步骤305将数据单元0003的值修改为C。接下来到达下一快照时刻,结束当前流程,重新执行步骤301。如果在此之前收到了清理快照单元的指令,则将快照区的数据复制到离线存储器上,然后清空快照区。
在图4(c)中,第三快照时刻后,首先执行步骤301,在快照区中记录第二快照时刻的触发事件。假设在第三快照时刻后,在到达第四快照时刻前,收到三条对数据存储区的数据单元进行修改的指令。第一条指令,是将数据单元0003的值,从当前的C修改为D。这样,经过步骤302和步骤303的判断后,执行步骤304,分配一个快照单元,记录下数据单元0003的地址以及数据单元0003的当前值C,然后执行步骤305将数据单元0003的值修改为D。由于未到达下一快照时刻,返回执行步骤302。
第二条对数据存储区的数据单元进行修改的指令,是将数据单元0004的值,从当前的A修改为D。这样,经过步骤302和步骤303的判断后,执行步骤304,分配一个快照单元,记录下数据单元0004的地址以及数据单元0004的当前值A,然后执行步骤305将数据单元0004的值修改为D。由于未到达下一快照时刻,返回执行步骤302。
第三条对数据存储区的数据单元进行修改的指令,是将数据单元0003的值,从当前的C修改为E。但是,经过步骤303的判断后,由于数据单元0003已经在快照区中进行过记录,因此不执行步骤304,直接执行步骤305,将数据单元0003的值修改为E。接下来到达下一快照时刻,结束当前流程,重新执行步骤301。如果在此之前收到了清理快照单元的指令,则将快照区的数据复制到离线存储器上,然后清空快照区。
请参考图5和图6,图5是本发明所提供的实现数据恢复的方法实施例一的流程图,图6是本发明所提供的实现数据恢复的方法实施例一存储介质的存储状态示意图。
步骤501:建立与数据存储区容量相同的暂存区,将当前时刻数据存储区的数据复制到暂存区中,并且建立暂存区的暂存单元地址与数据存储区的数据单元地址之间一一对应的关系。
在图6中,假设所述暂存区的暂存单元地址与数据存储区的数据单元地址之间一一对应的关系为:数据单元地址加上1000为对应的暂存单元地址。当然,在实际应用中,可以采用各种不同的对应关系。
步骤502:读取快照区中,离当前时刻最近的快照时刻后,直到当前时刻所记录的快照单元。
在图6中,以图4(c)中第三次变化后为当前时刻,图4(c)中的第三快照时刻为离当前时刻最近的快照时刻。则步骤502所述快照区中,离当前时刻最近的快照时刻后,直到当前时刻所记录的快照单元就是快照区中,第三快照时刻事件之后所记录的快照单元。
步骤503:将所读取的所有快照单元作为未处理快照单元。
步骤504:从未处理的快照单元选择任意一个快照单元,根据其中记录的数据单元地址,按照所述的暂存单元地址与数据单元地址的对应关系,计算出暂存单元的地址。
以所选定的快照单元是图6中的快照区中,第三快照时刻后第一个快照单元为例,该快照单元所记录的数据单元地址为0003,则根据步骤501中所述的数据单元地址与暂存单元地址之间的对应关系,可以得到对应的暂存单元地址为1003。
如果在数据备份时,省略了步骤303,那么在步骤504中,需要先选择所述未处理的快照单元中,最靠近当前时刻的快照单元,根据其中记录的数据单元地址,按照所述的暂存单元地址与数据单元地址的对应关系,计算出暂存单元的地址。也就是按照从当前时刻到所述离当前时刻最近的快照时刻的顺序处理快照单元。
步骤505:根据步骤504中得到的暂存单元地址,将步骤504中所选择的快照单元中记录的数据写入到该暂存单元,并将步骤504中所选择的快照单元标记为已处理快照单元。
以步骤504中所选定的快照单元是图6中的快照区中,第三快照时刻后第一个快照单元为例,该快照单元所记录的数据为C,则将暂存区中,地址为1003的数据单元的值修改为C。
步骤506:判断步骤502中所读取的所有快照单元是否均为已处理快照单元,如果是,则执行步骤507,否则执行步骤504。
步骤507:将暂存区中的数据复制到数据存储区中。
需要说明的是,在本发明中,待恢复时刻是快照时刻中的任意一个。如果要从图4(c)中第三次变化后的数据恢复到图4(b)中第二快照时刻的数据,只需要首先以图4(c)中第三次变化后为当前时刻,执行步骤502到步骤506,然后再以图4(c)中第三快照时刻为当前时刻,再次执行步骤502到步骤506,最后执行步骤507即可。
如果要从图4(c)中第三次变化后的数据恢复到图4(a)中第一快照时刻的数据,只需要首先以图4(c)中第三次变化后为当前时刻,执行步骤502到步骤506,然后以图4(c)中第三快照时刻为当前时刻,执行步骤502到步骤506,然后再以图4(b)中第二快照时刻为当前时刻,执行步骤502到步骤506,最后执行步骤507即可。
在如上所述的实施例中,为了要从图4(c)中第三次变化后的数据恢复到图4(a)中第一快照时刻的数据,实际上是依次使用了快照区中,第三快照时刻以后的快照单元、第二快照时刻以后的快照单元以及第一快照时刻以后的快照单元。在下面所要描述的实施例中,为了要从图4(c)中第三次变化后的数据恢复到图4(a)中第一快照时刻的数据,将会依次使用快照区中,第一快照时刻以后的快照单元、第二快照时刻以后的快照单元以及第三快照时刻以后的快照单元。
请参考图7和图8,图7是本发明所提供的实现数据恢复的方法实施例二的流程图,图8是本发明所提供的实现数据恢复的方法数据恢复时实施例二存储介质的存储状态示意图。
步骤701:建立与数据存储区容量相同的暂存区,将当前时刻数据存储区的数据复制到暂存区中,并且建立暂存区的暂存单元地址与数据存储区的数据单元地址之间一一对应的关系,并且将暂存区中所有暂存单元作为未处理暂存单元。
在图8中,假设所述暂存区的暂存单元地址与数据存储区的数据单元地址之间一一对应的关系为:数据单元地址加上2000为对应的暂存单元地址。当然,实际应用中,可以采用各种不同的对应关系。
步骤702:读取快照区中,待恢复的时刻到当前时刻之间的所有快照单元。
在图8中,所读取的快照单元就是快照区中所有的6个快照单元。
步骤703:将所读取的所有快照单元作为未处理快照单元。
步骤704:选择未处理的快照单元中,最靠近待恢复时刻的一个快照单元,根据其中记录的数据单元地址,按照所述的暂存单元地址与数据单元地址的对应关系,计算出暂存单元的地址。
在图8中,未处理的快照单元中最靠近待恢复时刻的快照单元就是第一快照时刻后的第一个快照单元。当处理完第一快照时刻后的第一个快照单元后,未处理的快照单元中最靠近恢复时刻的快照单元就是第一快照时刻后的第二个快照单元。当处理完第一快照时刻后的第二个快照单元后,未处理的快照单元中最靠近恢复时刻的快照单元就是第二快照时刻后的第一个快照单元。依此类推。
步骤705:判断步骤704中得到的暂存单元是否是未处理暂存单元,如果是,则执行步骤706,否则执行步骤707。
步骤706:根据步骤704中得到的暂存单元地址,将步骤704中所选择的快照单元中记录的数据写入到该暂存单元,并将步骤704中所选择的快照单元标记为已处理快照单元,将步骤704中所得到的暂存单元标记为已处理暂存单元。
在图8中,在处理第一快照时刻后的第一个快照单元时,根据该快照单元所记录的数据单元地址,所得到的暂存单元地址为2001,由于该暂存单元是未处理暂存单元,则将第一快照时刻后的第一个快照单元所记录的数据A写入暂存单元2001,并且将暂存单元2001标记为已处理暂存单元。
在处理第一快照时刻后的第二个快照单元时,根据该快照单元所记录的数据单元地址,所得到的暂存单元地址为2002,由于该暂存单元是未处理暂存单元,则将第一快照时刻后的第二个快照单元所记录的数据A写入暂存单元2002,并且将暂存单元2002标记为已处理暂存单元。
在处理第二快照时刻后的第一个快照单元时,根据该快照单元所记录的数据单元地址,所得到的暂存单元地址为2002,由于该暂存单元已被标记为已处理暂存单元,因此不对该暂存单元做任何操作。
以后的处理方法依此类推。
步骤707:判断步骤702中所读取的所有快照单元是否均为已处理快照单元,如果是则执行步骤708,否则返回执行步骤704。
步骤708:将暂存区中的数据复制到数据存储区中。
当然,无论是在发明所提供的实现数据恢复的方法数据恢复时实施例一还是实施例二中,暂存区的数据也可以直接提供给用户使用,而无需复制到数据存储区中,也就是说可以省略步骤708。
并且,无论是在发明所提供的实现数据恢复的方法数据恢复时实施例一还是实施例二中,都可以不建立暂存区,直接向数据存储区进行恢复操作。
在没有暂存区的情况下,实施例一中,步骤501和步骤507都可以省去;步骤504改为从未处理的快照单元选择任意一个快照单元;步骤505改为将步骤504中所选择的快照单元中记录的数据写入到步骤504中所选择的快照单元中记录的数据单元,并将步骤504中所选择的快照单元标记为已处理快照单元。
在没有暂存区的情况下,实施例二中,步骤701修改为将数据存储区的所有数据单元作为未处理数据单元;步骤704修改为选择未处理的快照单元中,最靠近待恢复时刻的一个快照单元;步骤705改为判断步骤704中所选择的快照单元所记录的数据单元是否为未处理单元;步骤706改为根据步骤704中所选择的快照单元中记录的数据单元地址,将步骤704中所选择的快照单元中记录的数据写入到该数据单元,并将步骤704中所选择的快照单元标记为已处理快照单元,将步骤704中所选择的快照单元中记录的数据单元标记为已处理数据单元;省去步骤708。
需要说明的是,如果采用实施例一的恢复方法,无论是否设置暂存区,在执行恢复操作之前,都需要令所述数据存储区为不可由外部指令修改。这里所说的外部指令就是步骤302中所述对数据存储区的数据单元进行修改的指令。
另外需要说明的是,无论是采用实施例一的恢复方法还是实施例二的恢复方法,在执行恢复操作之前,从当前时刻到待恢复时刻之间的快照区中记录的所有快照单元必须存储在在线存储设备上,转移到离线存储器上的数据需要首先复制到在线存储设备上,然后才能执行恢复操作。
请参考图9,图9是本发明提供的实现数据恢复的系统的方框图。
该系统包括:
数据存储区,用于存储数据。在数据备份时,数据存储区作为数据源同备份管理器交互;在数据恢复时,数据存储区作为恢复目标同恢复管理器交互。
备份管理器,用于根据触发快照的事件,以及对数据存储区的数据单元进行修改的指令,与数据存储区和快照区交互完成数据备份,包括快照触发模块、快照区修改模块和指令接口模块。
快照触发模块,用于检测触发快照的事件,判断是否发生了触发快照的事件;在触发快照的事件发生后,快照触发模块进一步判断发生了何种触发快照的事件,并将与触发快照的事件相关的信息发送给快照区修改模块。
指令接口模块,用于判断是否收到对数据存储区的数据单元进行修改的指令,如果收到,则进一步判断是否需要将待修改数据单元的地址和当前值记录在快照区中,如果需要,则将待修改数据单元的地址和当前值发送给快照区修改模块,并且执行所述指令,如果不需要,则直接执行所述指令。
上述判断是否需要将待修改数据单元的地址和当前值记录在快照区中可以由指令接口模块的逻辑判断子模块完成。
快照区修改模块,用于将快照触发模块发送的与触发快照的事件相关的信息,和/或,指令接口模块所发送的待修改数据单元的地址以及当前值写入快照区。
快照区,用于记录数据存储区发生变化的数据单元的地址以及所述数据单元的当前值,以及触发快照的事件。
快照区管理器,用于根据预先设定的管理策略,管理快照区的数据,用于在需要的时候释放快照区的部分快照单元所占用的存储空间,或者将快照区的快照单元复制到离线存储器后释放所复制的快照单元在快照区中占用的空间;在进行恢复操作时,快照区管理器用于根据需要将离线存储区上的快照单元复制到快照区中。
离线存储区,用于备份快照区的数据。
恢复管理器,用于根据数据存储区的当前数据以及快照区数据进行数据恢复,将恢复后的数据写入数据存储区。
恢复管理器可以进一步包括暂存区接口模块,用于在数据恢复开始时,将数据存储区的数据复制到暂存区;在进行数据恢复时,将恢复过程的中间数据写入到暂存区;在恢复完成后,将暂存区数据复制到数据存储区。
暂存区,用于存放数据恢复过程中的中间数据。
所述的数据存储区、快照区以及暂存区,可以是本地的存储介质,还可以是本地虚拟存储介质、外接存储介质、网络共享存储介质、存储局域网环境下的虚拟存储介质等,只要是在线存储介质都可以实现本发明。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种实现数据备份的方法,其特征在于,设置触发快照的事件,每次触发快照的事件发生后,该方法包括:
A、以触发快照的事件发生的时刻作为快照时刻,记录本次触发快照的事件;
B、判断是否接收到对数据单元进行修改的指令,如果收到,则执行步骤C,否则,执行步骤D;
C、判断快照单元是否记录过待修改数据单元的地址,如果是,则执行对数据单元进行修改的指令;如果不是,则为待修改数据单元分配快照单元之后,执行对数据单元进行修改的指令;
D、判断是否发生下一次触发快照的事件,如果发生,则结束当前流程,否则返回执行步骤B。
2.根据权利要求1所述的实现数据备份的方法,其特征在于,步骤B和C中,所述对数据单元进行修改的指令包括待修改数据单元的地址和要写入待修改数据单元的数据。
3.根据权利要求2所述的实现数据备份的方法,其特征在于,步骤C中,所述执行所述对数据单元进行修改的指令是将所述指令中所包含的要写入待修改数据单元的数据写入到待修改数据单元。
4.根据权利要求1所述的实现数据备份的方法,其特征在于,步骤C中,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值。
5.根据权利要求1所述的实现数据备份的方法,其特征在于,步骤A之前,还包括步骤:
为每个数据单元配置一个状态标志位;
步骤A进一步包括:
设置所有数据单元的状态标志位为未修改;
步骤C中,执行对数据单元进行修改的指令后进一步包括:
设置待修改数据单元所对应的状态标志位为已修改。
6.根据权利要求1所述的实现数据备份的方法,其特征在于,步骤D在下一次触发快照的事件发生后,在结束当前流程前进一步包括:
判断是否在所述本次触发快照的事件和所述下一次触发快照的事件之间,收到清理快照单元的指令,如果收到,则清理已经分配的快照单元,否则结束当前流程。
7.根据权利要求6所述的实现数据备份的方法,其特征在于,所述清理已经分配的快照单元为:
将已经分配的快照单元复制到离线存储器上,然后释放已经分配的快照单元所占用的存储空间;
设定门限值,所述清理已经分配的快照单元为:
释放对应于最早的门限值次触发快照事件所对应的快照单元所占用的存储空间;
设定门限值,所述清理已经分配的快照单元为:
将对应于最早的门限值次触发快照事件所对应的的快照单元复制到离线存储器上,然后释放其所占用的存储空间。
8.一种实现数据备份和恢复的方法,其特征在于,设置触发快照的事件,每次触发快照的事件发生后,该方法包括:
U、以触发快照的事件发生的时刻作为快照时刻,记录本次触发快照的事件;在下次触发快照的事件发生前,如果收到对数据单元进行修改的指令,则判断快照单元是否记录过待修改数据单元的地址,如果是,则执行所述对数据单元进行修改的指令;如果不是,则为待修改数据单元分配快照单元,记录待修改数据单元的地址以及当前值,然后执行所述对数据单元进行修改的指令;
在数据恢复时,该方法还包括:
V、读取当前时刻到待恢复时刻之间所分配的快照单元,按照时间顺序,判断快照单元是否为已处理快照单元,如果不是,则将快照单元中所记录的数据写入到快照单元所记录地址的数据单元中。
9.根据权利要求8所述的实现数据备份和恢复的方法,其特征在于,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值;
步骤V中,所述将快照单元中所记录的数据写入到快照单元所记录地址的数据单元中为:
V11、将当前时刻与离当前时刻最近的快照时刻之间分配的快照单元作为未处理快照单元;
V12、选择未处理的快照单元中最靠近当前时刻的快照单元,将所述快照单元的数据区所记录的数据,写入到所述快照单元的地址区所记录的数据单元中,然后将所述快照单元标记为已处理快照单元;
V13、判断当前时刻与离当前时刻最近的快照时刻之间的快照单元是否全部为已处理快照单元,如果是,则执行步骤V14,否则返回执行步骤V12;
V14、判断所述离当前时刻最近的快照时刻,是否为待恢复时刻,如果是则结束当前流程,否则将离当前时刻最近的快照时刻作为新的当前时刻,返回执行步骤V11;
V21、为每个数据单元分配对应的暂存单元,并且将数据单元中的数据复制到对应的暂存单元中;
V22、将当前时刻与离当前时刻最近的快照时刻之间分配的快照单元作为未处理快照单元;
V23、选择未处理的快照单元中最靠近当前时刻的快照单元,将所述快照单元的数据区所记录的数据,写入到与所述快照单元的地址区所记录的数据单元对应的暂存单元中,然后将所述快照单元标记为已处理快照单元;
V24、判断当前时刻与离当前时刻最近的快照时刻之间的快照单元是否全部为已处理快照单元,如果是,则执行步骤V25,否则返回执行步骤V22;
V25、判断所述离当前时刻最近的快照时刻,是否为待恢复时刻,如果是则结束当前流程,否则将离当前时刻最近的快照时刻作为新的当前时刻,返回执行步骤V21。
10.根据权利要求8所述的实现数据备份和恢复的方法,其特征在于,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值;
步骤V中,所述将快照单元中所记录的数据写入到快照单元所记录地址的数据单元中为:
V31、将当前时刻与离当前时刻最近的快照时刻之间分配的快照单元作为未处理快照单元;
V32、选择未处理的快照单元中的任意一个快照单元,将所述快照单元的数据区所记录的数据,写入到所述快照单元的地址区所记录的数据单元中,然后将所述快照单元标记为已处理快照单元;
V33、判断当前时刻与离当前时刻最近的快照时刻之间的快照单元是否全部为已处理快照单元,如果是,则执行步骤V34,否则返回执行步骤V32;
V34、判断所述离当前时刻最近的快照时刻,是否为待恢复时刻,如果是则结束当前流程,否则将离当前时刻最近的快照时刻作为新的当前时刻,返回执行步骤V31;
V41、为每个数据单元分配对应的暂存单元,并且将数据单元中的数据复制到对应的暂存单元中;
V42、将当前时刻与离当前时刻最近的快照时刻之间分配的快照单元作为未处理快照单元;
V43、选择未处理的快照单元中任意一个快照单元,将所述快照单元的数据区所记录的数据,写入到与所述快照单元的地址区所记录的数据单元对应的暂存单元中,然后将所述快照单元标记为已处理快照单元;
V44、判断当前时刻与离当前时刻最近的快照时刻之间的快照单元是否全部为已处理快照单元,如果是,则执行步骤V45,否则返回执行步骤V42;
V45、判断所述离当前时刻最近的快照时刻,是否为待恢复时刻,如果是则结束当前流程,否则将离当前时刻最近的快照时刻作为新的当前时刻,返回执行步骤V41。
11.根据权利要求8至10所述的实现数据备份和恢复的方法,其特征在于,在数据恢复时,在步骤V之前进一步包括:
设置所要恢复的数据单元为不可由所述对数据单元进行修改的指令进行修改。
12.根据权利要求8所述的实现数据备份和恢复的方法,其特征在于,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值;
步骤V中,所述将快照单元所记录的数据写入到快照单元所记录地址的数据单元中为:
V51、将所有待恢复数据单元作为未处理数据单元,将当前时刻与待恢复时刻之间分配的快照单元作为未处理快照单元;
V52、选择未处理快照单元中离待恢复时刻最近的快照单元,判断所述快照单元的地址区所记录的数据单元是否为未处理数据单元,如果是,则执行步骤V53,否则执行步骤V54;
V53、将所述快照单元的数据区所记录的数据,写入到所述快照单元的地址区所记录的数据单元中,然后将所述快照单元的地址区所记录的数据单元标记为已处理;
V54、判断当前时刻与待恢复时刻之间分配的快照单元是否都为已处理快照单元,如果是则结束当前流程,否则返回执行步骤V52;
V61、为每个数据单元分配对应的暂存单元,并且将数据单元中的数据复制到对应的暂存单元中;
V62、将所有待恢复数据单元作为未处理数据单元,将当前时刻与待恢复时刻之间分配的快照单元作为未处理快照单元;
V63、选择未处理快照单元中离待恢复时刻最近的快照单元,判断所述快照单元的地址区所记录的数据单元是否为未处理数据单元,如果是,则执行步骤V64,否则执行步骤V65;
V64、将所述快照单元的数据区所记录的数据,写入到与所述快照单元的地址区所记录的数据单元对应的暂存单元中,然后将所述快照单元的地址区所记录的数据单元标记为已处理;
V65、判断当前时刻与待恢复时刻之间分配的快照单元是否都为已处理快照单元,如果是,则结束当前流程,否则返回执行步骤V63。
13.根据权利要求8所述的实现数据备份和恢复的方法,其特征在于,所述步骤U进一步包括:
判断是否在所述本次触发快照的事件和所述下一次触发快照的事件之间,收到清理快照单元的指令,如果收到,则清理已经分配的快照单元,否则结束当前流程。
14.根据权利要求13所述的实现数据备份和恢复的方法,其特征在于,所述清理已经分配的快照单元为:
将已经分配的快照单元复制到离线存储器上,然后释放已经分配的快照单元所占用的存储空间;
将对应于最早的门限值次触发快照事件所对应的快照单元复制到离线存储器上,然后释放其所占用的存储空间。
15.根据权利要求14所述的实现数据备份和恢复的方法,其特征在于,在数据恢复时,在步骤V之前进一步包括:
判断待恢复时刻所对应的快照单元是否已经复制到离线存储器上,如果是则将离线存储器上,待恢复时刻以后所分配的快照单元复制到在线存储器上,然后执行步骤V,否则直接执行V。
16.一种实现数据备份和恢复的系统,包括数据存储区,其特征在于,该系统进一步包括:
备份管理器,用于根据触发快照的事件以及对数据存储区的数据单元进行修改的指令,在快照区已记录过待修改数据单元的地址时,执行对数据存储区的数据单元进行修改的指令;在快照区没记录待修改数据单元的地址时,为待修改数据单元分配快照单元之后,执行所述指令;
快照区,用于记录触发快照的事件,以及数据存储区发生变化的数据单元的地址以及所述数据单元的当前值;
恢复管理器,用于读取当前时刻到待恢复时刻之间所分配的快照单元,按照时间顺序,判断快照区的快照单元是否为已处理快照单元,如果不是,则将快照单元所记录的数据写入到数据单元。
17.根据权利要求16所述的实现数据备份和恢复的系统,其特征在于,该系统进一步包括:
快照区管理器,用于根据预先设定的管理策略,管理快照区的数据,并且与离线存储区交互,对快照区的数据进行备份;
离线存储区,用于备份快照区的数据。
18.根据权利要求16所述的实现数据备份和恢复的系统,其特征在于,所述备份管理器包括:
快照触发模块,用于检测触发快照的事件,并将与触发快照的事件相关的信息发送给快照区修改模块;
指令接口模块,用于接收对数据存储区的数据单元进行修改的指令,在快照区已记录过待修改数据单元的地址时,执行对数据存储区的数据单元进行修改的指令;在快照区没记录待修改数据单元的地址时,为待修改数据单元分配快照单元,将所述指令中待修改数据单元的地址和当前值发送给快照区修改模块,之后,执行所述指令;
快照区修改模块,用于将快照触发模块发送的与触发快照的事件相关的信息,和/或,指令接口模块所发送的待修改数据单元的地址以及当前值写入快照区。
19.根据权利要求18所述的实现数据备份和恢复的系统,其特征在于,所述指令接口模块进一步包括:
逻辑判断子模块,用于判断是否需要将待修改数据单元的地址和当前值记录在快照区中。
20.根据权利要求16所述的实现数据备份和恢复的系统,其特征在于,该系统进一步包括:
暂存区,用于存放数据恢复过程中的中间数据;
所述恢复管理器进一步包括:
暂存区接口模块,用于在数据恢复开始时,将数据存储区的数据复制到暂存区;在进行数据恢复时,将恢复过程的中间数据写入到暂存区;在恢复完成后,将暂存区数据复制到数据存储区。
CNB2006100784300A 2006-05-26 2006-05-26 一种实现数据备份和恢复的方法及系统 Expired - Fee Related CN100464307C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100784300A CN100464307C (zh) 2006-05-26 2006-05-26 一种实现数据备份和恢复的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100784300A CN100464307C (zh) 2006-05-26 2006-05-26 一种实现数据备份和恢复的方法及系统

Publications (2)

Publication Number Publication Date
CN101078999A CN101078999A (zh) 2007-11-28
CN100464307C true CN100464307C (zh) 2009-02-25

Family

ID=38906484

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100784300A Expired - Fee Related CN100464307C (zh) 2006-05-26 2006-05-26 一种实现数据备份和恢复的方法及系统

Country Status (1)

Country Link
CN (1) CN100464307C (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631774B (zh) * 2012-08-20 2018-03-20 腾讯科技(深圳)有限公司 数据存储方法和系统
CN103019888B (zh) * 2012-12-21 2016-03-30 华为技术有限公司 备份方法与装置
CN104636125B (zh) * 2013-11-13 2018-03-23 联想(北京)有限公司 一种信息处理方法及装置
CN106933604B (zh) * 2015-12-30 2021-03-05 中移(苏州)软件技术有限公司 一种系统升级方法及装置
CN108351821B (zh) * 2016-02-01 2022-03-29 华为技术有限公司 数据恢复方法及存储设备
US10228871B2 (en) * 2016-02-22 2019-03-12 Netapp Inc. Enabling data integrity checking and faster application recovery in synchronous replicated datasets
CN107329852B (zh) * 2017-06-09 2020-09-04 广州虎牙信息科技有限公司 基于Hive的数据处理的方法、系统及终端设备
CN109101363B (zh) * 2017-06-21 2023-09-22 中兴通讯股份有限公司 基于Android系统的异常恢复方法、装置、智能设备及存储介质
CN107608825A (zh) * 2017-09-19 2018-01-19 杭州宏杉科技股份有限公司 一种云备份快照数据的方法及装置
CN107678889B (zh) * 2017-09-30 2020-06-09 上海数据交易中心有限公司 工作流任务状态的恢复方法及装置、存储介质、计算设备
CN109165120B (zh) * 2018-08-08 2022-04-05 华为技术有限公司 分布式存储系统中管理快照和差异位图生成方法和产品
CN109324926A (zh) * 2018-08-30 2019-02-12 黄疆 一种基于rollback的垃圾数据处理系统及方法
CN111857739B (zh) * 2019-04-29 2023-06-09 深圳市优必选科技有限公司 Scratch测控板程序存储的方法及装置
CN110134550A (zh) * 2019-05-15 2019-08-16 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及计算机可读存储介质
CN113360495B (zh) * 2021-04-20 2023-02-24 山东英信计算机技术有限公司 一种数据库查询中断的恢复方法、装置、设备及可读介质
CN116610501A (zh) * 2023-07-20 2023-08-18 深圳市科力锐科技有限公司 Nas数据还原方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030220948A1 (en) * 2002-01-22 2003-11-27 Columbia Data Products, Inc. Managing snapshot/backup collections in finite data storage
CN1567262A (zh) * 2003-06-10 2005-01-19 联想(北京)有限公司 基于数据卷快照的在线数据备份方法
US20050262316A1 (en) * 2004-05-18 2005-11-24 Junya Obayashi Backup acquisition method and disk array apparatus
CN1704903A (zh) * 2004-06-03 2005-12-07 华为技术有限公司 一种快照备份的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030220948A1 (en) * 2002-01-22 2003-11-27 Columbia Data Products, Inc. Managing snapshot/backup collections in finite data storage
CN1567262A (zh) * 2003-06-10 2005-01-19 联想(北京)有限公司 基于数据卷快照的在线数据备份方法
US20050262316A1 (en) * 2004-05-18 2005-11-24 Junya Obayashi Backup acquisition method and disk array apparatus
CN1704903A (zh) * 2004-06-03 2005-12-07 华为技术有限公司 一种快照备份的方法

Also Published As

Publication number Publication date
CN101078999A (zh) 2007-11-28

Similar Documents

Publication Publication Date Title
CN100464307C (zh) 一种实现数据备份和恢复的方法及系统
CN106055431B (zh) 基于快照在线回滚的数据备份与恢复的方法及装置
CN101233498B (zh) 快闪存储器中利用直接数据文件存储的数据操作
CN101008918B (zh) 存储系统及其复原方法
CN100430945C (zh) 动态切换将事务数据写入盘中的模式的设备和方法
CN1331063C (zh) 基于数据卷快照的在线数据备份方法
CN100590609C (zh) 一种基于非连续页的动态内存管理方法
US6154852A (en) Method and apparatus for data backup and recovery
CN100498796C (zh) 逻辑日志生成方法、数据库备份/恢复方法与系统
CN104166606A (zh) 文件备份方法和主存储设备
CA2497326A1 (en) Moving data among storage units
CN102713824A (zh) 基于未来使用估计的分配存储器
CN103761053A (zh) 一种数据处理方法和装置
CN102981931A (zh) 虚拟机备份方法及装置
CN102770841A (zh) 用于产生最小引导映像的方法和装置
CN102012852A (zh) 一种增量写快照的实现方法
CN100538617C (zh) 存储介质处理方法及系统
CN101122843A (zh) 写入和读取应用数据的方法和系统
CN103324533A (zh) 分布式数据处理方法、装置及系统
CN103885811A (zh) 虚拟机系统全系统在线迁移的方法、系统与装置
CN102541750A (zh) 数据快照的实现方法和装置
CN101937378A (zh) 一种对存储设备的数据进行备份保护的方法及计算机系统
CN101566930A (zh) 虚拟磁盘驱动系统和方法
JP2008090798A (ja) データ処理システムのバックアップ制御装置及びシステム
JP5549243B2 (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
EE01 Entry into force of recordation of patent licensing contract

Assignee: Hangzhou Xinhe Data Technology Co.,Ltd.

Assignor: Ren Yongjian|Chen Ye

Contract record no.: 2011330000783

Denomination of invention: Method and system for accomplishing data backup and recovery

Granted publication date: 20090225

License type: Exclusive License

Open date: 20071128

Record date: 20110622

ASS Succession or assignment of patent right

Free format text: FORMER OWNER: CHEN YE

Effective date: 20131108

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131108

Address after: 200135, room 18, No. 910, Lane 1502, Dingxiang Road, Shanghai, Pudong New Area

Patentee after: Ren Yongjian

Address before: 200135, room 18, No. 910, Lane 1502, Dingxiang Road, Shanghai, Pudong New Area

Patentee before: Ren Yongjian

Patentee before: Chen Ye

ASS Succession or assignment of patent right

Owner name: HANGZHOU INFOCORE DATA TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: REN YONGJIAN

Effective date: 20140221

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 200135 PUDONG NEW AREA, SHANGHAI TO: 311202 HANGZHOU, ZHEJIANG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140221

Address after: 12, building 1038, 311202 water tower, Jincheng Road, Xiaoshan District, Zhejiang, Hangzhou

Patentee after: Hangzhou Xinhe Data Technology Co.,Ltd.

Address before: 200135, room 18, No. 910, Lane 1502, Dingxiang Road, Shanghai, Pudong New Area

Patentee before: Ren Yongjian

TR01 Transfer of patent right
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 12, building 1038, 311202 water tower, Jincheng Road, Xiaoshan District, Zhejiang, Hangzhou

Patentee after: Hangzhou Xinhe Data Technology Co.,Ltd.

Address before: 12, building 1038, 311202 water tower, Jincheng Road, Xiaoshan District, Zhejiang, Hangzhou

Patentee before: Hangzhou Xinhe Data Technology Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090225

Termination date: 20180526

CF01 Termination of patent right due to non-payment of annual fee