将储存库还原到先前状态的方法技术

技术编号:2827846 阅读:183 留言:0更新日期:2012-04-11 18:40
本发明专利技术描述的技术用于将储存库返回到前状态。储存库可以是,例如数据库,并且前状态可以是,例如数据库在过去的特定时间点具有的一致状态。当操作者引起的错误通过由已经提交的事务作出的改变引入到数据库中时,本发明专利技术描述的技术可以用于通过将数据库返回到在引入错误的事务被提交的时间之前的时间点来从错误恢复。该技术包括产生“物理撤消”信息,以及物理撤消信息与生理撤消和生理重做的联合使用,以有效地将储存库返回到前状态。

【技术实现步骤摘要】
本申请是申请号为200480010768.1、申请日为2004年3月31日、专利技术名称为“将储存库还原到先前状态的方法”的专利技术专利申请的分案申请。
本专利技术涉及数据管理系统,并且更特别地,涉及用于将一组数据恢复到先前状态的技术。
技术介绍
在使用计算机时可能会产生许多问题。两种通常类别的错误包括计算机引起的错误和操作者引起的错误。由于这两种类型的错误的性质不同,被设计用于从计算机引起的错误恢复的技术未必能用于从操作者引起的错误恢复。例如,一项用于在计算机引起的错误(诸如节点或进程故障)之后恢复数据库的技术包括保存操作日志。特别地,保存重做日志(redo log),使得由在故障之前提交的事务在易失性存储器中作出的改变能够在故障之后持久保存在数据库中。类似地,保存撤消日志(undo log),使得由不是在故障之前提交的事务作出的持久保存的改变可以在故障之后被从数据库除去。上述的基于日志的恢复技术不能处理操作者引起的错误的问题,因为这些错误可以反映在由所提交的事务作出的改变中。即使-->当反映人员错误的所提交的事务后面跟有计算机引起的错误时,基于日志的恢复操作仅仅能保证这些错误地执行的改变在从计算机引起的错误恢复后继续反映在数据库中。因此,计算机引起的错误的恢复技术倾向于区别已提交的改变和未提交的改变,而不区别正确的已提交的改变和错误的已提交的改变。与计算机引起的错误的恢复技术相反,操作者引起的错误的恢复技术集中在从数据库除去已提交的改变和未提交的改变。特别地,操作者引起的错误的恢复技术典型地集中在将数据库返回到存在于在过去的特定点(优选地在包括操作者引起的错误的事务的提交时间之前)的一致状态。例如,一项操作者引起的错误的恢复技术包括在特定时间点制作数据库的备份。如果操作者引起的错误在该时间之后引入,可以通过还原到数据库的备份来将操作者引起的错误“除去”。当然,数据库管理员很少提前知道操作员引起的错误将被引入。如果在最后的备份操作与错误的时间之间已经经过了很长时间,则还原回备份的数据库,然后再次应用在备份操作之后但是在错误之前发生的所有改变是非常不切实际和低效的。另一技术包括保存“镜像”数据库(mirror database),其状态相对于原始数据库被延迟。在用户引起的错误的情况下,可以还原到镜像数据库。然而,如果用于发现错误的时间大于延迟的持续时间,则即使所延迟的镜像也将反映错误。此外,由于长的延迟将提高及时发现错误的概率,其将同样增加与故障转移到镜像相关的低效率。另一延迟的镜像技术包括保存多个延迟的镜像数据库,其中各镜像数据库具有不同的延迟持续时间。带有不同延迟的多个镜像的使用增加了至少一个镜像将表示在错误的时间之前但是不太久前-->的状态的可能性。然而,同可以用于该目的的资源相比,保存这样的镜像消耗了更多的资源。可选的技术包括在支持“快照(snapshot)”的存储器子系统上存储数据库,然后使用子系统的快照机制将存储器子系统还原回在错误之前的快照时间。例如,存储器子系统可以设定特定的“快照时间”T5。在T5之后,子系统中的块(block)的各个改变通过以下方式处理:(1)确定该块在T5之后是否已经被改变,并且如果没有,那么(2)在对该块作出改变之前,从子系统中读取块的改变之前的版本并将其复制到与T5快照相关联的特殊分离“快照存储器”。使用该技术,通过将块从T5快照存储器复制回其在存储器子系统中的对应块,可以将存取器子系统返回到其在时间T5存在的状态。此外,即使在不将存储器子系统还原回其前状态(prior state)的情况下,当进程或事务想要看特殊的块时,也可以通过执行以下的步骤允许进程或事务看子系统在时间T5的状态:(1),如果特殊块的拷贝在T5快照存储器中,则从T5快照存储器中提供特殊块的拷贝,以及(2)只有当在T5快照存储器中没有块的拷贝时才从存储器子系统提供特殊块的拷贝。快照技术提供了精确的结果,但是这是通过将潜在地巨大管理量强加于所有的写入操作来实现的。特别地,当在任意快照时间之后对任意块的第一次更新时,块的更新之前的图像必须被读取,然后写出到适当的快照存储器。此外,当数据库管理员必须将存储器子系统返回到先前状态时,管理员仅被限于那些快照时间被明确地设定的状态。操作者引起的错误仅仅是一种不容易通过应用生理撤消(physiological undo)除去的错误。例如,当试图从逻辑数据不纯-->(data corruption)恢复时可能会产生困难。例如,类似于操作者引起的错误,如果再次应用重做(redo),这样的不纯可以被简单地“重放(replay)”。基于前文所述,显然希望提供一种机制和技术,用于以不存在在该部分中描述的方法中固有的效率或资源消耗问题的方式从可重放错误恢复。在该部分中描述的方法是可执行的方法,但不必是以前已经想到或执行的方法。因此,除非指出,否则不应仅因为在该部分中描述的任何方法包括在该部分中,就认为其为现有技术。附图说明通过附图中的实例来描述本专利技术,但是不局限于此,在附图中相同的参考标号表示类似的元件,其中:图1A-1C是示出根据本专利技术的实施例的具有闪回(flashback)日志的系统的框图;图2是示出根据本专利技术的实施例的嵌入闪回日志的门标记的框图;以及图3是示出可实施本专利技术实施例的计算机系统的框图。具体实施方式本专利技术描述一种用于将储存库(repository)还原到前状态的技术。在下面的描述中,为了解释的目的,描述了多个特定的细节,以对本专利技术有彻底的了解。然而,很显然,在没有这些特定细节的-->情况下,本专利技术也可以被实现。在其它的实例中,以框图形式示出已知的结构和设备,以避免不必要地模糊本专利技术。功能概述在本文中描述的技术用于将储存库返回到前状态。根据一个实施例,该储存库为数据库,并且前状态是数据库在过去特定时间点具有的一致状态。特别地,前状态是数据库在其中反映由在特定时间点之前提交的事务作出的所有改变,并且不反映由在特定时间点之前未提交的事务作出的改变的状态。在另一实施例中,储存库是磁盘上的一个或多个文件。当操作者引起的错误通过由已经提交的事务作出的改变引入到数据库中时,本文中描述的技术可以用于通过将数据库返回到引入错误的事务被提交时间之前的时间点来本文档来自技高网...

【技术保护点】
一种将储存库返回到目标前逻辑状态的方法,所述方法包括:    接收将所述储存库返回到所述目标前逻辑状态的请求,其中,所述目标前逻辑状态在目标时间点处是所述储存库的一致状态,并且其中,所述目标前逻辑状态在所述储存库的最近逻辑状态之前;    响应于所述请求,执行如下步骤:    对持久存储在所述储存库中的数据应用撤消,其中,所述撤消包括将所述数据返回到先前状态所必需的信息,并且其中,所述撤消的应用使得所述数据反映所述先前状态;以及    在应用所述撤销之后,应用重做,以将所述数据从所述先前状态移动到所述目标前逻辑状态,    其中,所述重做包括关于如何对所述数据重新执行改变的信息。

【技术特征摘要】
US 2003-4-30 10/427,5111.一种将储存库返回到目标前逻辑状态的方法,所述方法包括:
接收将所述储存库返回到所述目标前逻辑状态的请求,
其中,所述目标前逻辑状态在目标时间点处是所述储存库的一
致状态,并且其中,所述目标前逻辑状态在所述储存库的最近
逻辑状态之前;
响应于所述请求,执行如下步骤:
对持久存储在所述储存库中的数据应用撤消,其中,
所述撤消包括将所述数据返回到先前状态所必需的信
息,并且其中,所述撤消的应用使得所述数据反映所述
先前状态;以及
在应用所述撤销之后,应用重做,以将所述数据从
所述先前状态移动到所述目标前逻辑状态,
其中,所述重做包括关于如何对所述数据重新执行
改变的信息。
2.根据权利要求1所述的方法,其中,
所述应用所述撤消的步骤包括:为多个过程分配撤消记
录;以及
所述多个过程相对于彼此并行的应用所述撤消记录。
3.根据权利要求1所述的方法,其中,
所述应用所述撤消的步骤使得在所述储存库中的块反映
在所述目标时间点之前的时间;以及
所述应用重做的步骤包括应用所述重做,以将在所述储
存库中的所述数据在时间上向前移动到所述目标前逻辑状态。
4.根据权利要求3所述的方法,其中,所述撤销是第一类撤销,
其中,所述应用重做的步骤包括:在应用所述重做之后,应用
第二类撤消,以从所述数据的至少一些去除由在所述目标时间
点时或在所述目标时间点之前还未提交的事务作出的改变。
5.根据权利要求1所述的方法,其中,所述对所述储存库中的所
述数据应用撤消的步骤包括:
对所述数据的第一集合应用与对应于特定时间点的门相
关的所述撤消,其中,所述门是产生所述撤消的特殊时间点;
以及
对所述数据的第二集合应用与在所述门之前的预期门相
关的所述撤消。
6.根据权利要求5所述的方法,进一步包括:
为在所述预期门之后作出的一些但不是所有的预期门后
第一次更新产生所述撤消;以及
除对在所述预期门之后为其产生所述撤消的数据作出的
更新之外,为在所述门之后作出的所有门后第一次更新产生所
述撤消。
7.根据权利要求6所述的方法,进一步包括:
当所述预期门后第一次更新被执行时,根据资源的可用
性确定是否为所述预期门后第一次更新产生所述撤消。
8.根据权利要求1所述的方法,进一步包括:
根据与特定时间点相关的门产生所述撤消;
将所述撤消作为一系列闪回记录存储在闪回日志中;以

将使所述门与位置相关联的数据存储在所述闪回日志
中。
9.根据权利要求8所述的方法,其中,所述将使所述门与位置相
关联的数据存储在所述闪回日志中的步骤包括:为所述门的各
个门在所述闪回日志中存储门标记。
10.根据权利要求9所述的方法,进一步包括如下步骤:使用与门
相关的门标记,来确定处理哪个闪回记录,以将所述储存库返
回到与所述门相关的所述先前状态。

【专利技术属性】
技术研发人员:J威廉李罗万安迈克尔斯图尔特胡维民威廉布里奇
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:US[美国]

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

1