当前位置: 首页 > 专利查询>任永坚专利>正文

一种实现数据备份和恢复的方法及系统技术方案

技术编号:2836090 阅读:173 留言:0更新日期:2012-04-11 18:40
一种实现数据备份的方法,其特征在于,设置触发快照的事件,每次触发快照的事件发生后,该方法包括:    A、以触发快照的事件发生的时刻作为快照时刻,记录本次触发快照的事件;    B、判断是否接收到对数据单元进行修改的指令,如果收到,则分配快照单元记录待修改数据单元的地址以及当前值,执行所述对数据单元进行修改的指令,然后执行步骤C,否则直接执行步骤C;    C、判断是否发生下一次触发快照的事件,如果发生,则结束当前流程,否则返回执行步骤B。

【技术实现步骤摘要】

本专利技术涉及数据存储技术,特别是涉及一种实现数据备份和恢复的方法及系统
技术介绍
计算机的数据是存储在计算机的存储介质上的。对数据进行修改是在存储介质上用新数据覆盖原数据,这样,如果没有特殊的手段,原数据是无法被恢复的但是实际中的很多应用都需要能够恢复原数据。例如,个人电脑用户执行某些操作导致系统崩溃,这时候就需要恢复执行这些操作之前的原系统数据,通常实现数据恢复是采用定期备份的方法,即定期的将数据备份到备份存储介质上,如果需要恢复,又将数据从备份存储介质上导入原存储介质。这种方法的缺点在于,无论是进行数据备份还是进行数据恢复时,无论数据是否发生变化,一律进行备份或恢复,一方面造成备份存储介质的浪费,另一方面占用系统的处理能力。现有技术解决这一问题的方法是采用如图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,否则直接执行步骤C;C、判断是否发生下一次触发快照的事件,如果发生,则结束当前流程,否则返回执行步骤B。其中,步骤B在分配快照单元前,进一步包括判断在本次触发快照的事件发生后,所述待修改数据单元是否已经被修改过,如果是,则直接执行所述对数据单元进行修改的指令,否则分配所述快照单元。其中,所述快照单元包括地址区和数据区,其中地址区用于记录待修改数据单元的地址,数据区用于记录待修改数据单元的当前值,所述判断在本次触发快照的事件发生后,所述待修改数据单元是否已经被修改过为判断在本次触发快照的事件发生后分配的快照单元的地址区中,是否已经记录过待修改数据单元的地址,如果是则认为待修改数据单元已经被修改过,否则认为待修改数据单元未被修改过。其中,该方法进一步包括为每个数据单元配置一个状态标志位,步骤A进一步包括设置所有数据单元的状态标志本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:任永坚
申请(专利权)人:任永坚陈烨
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1