使用WAL的数据库回滚制造技术

技术编号:13972217 阅读:86 留言:0更新日期:2016-11-10 22:14
本发明专利技术涉及使用WAL的数据库回滚。在数据库的取证分析的领域中,使用预写式日志(WAL;102)来执行到数据库(101)的先前状态的数据库回滚的方法包括:在被记录到WAL的帧的集合中选择表示相应的特定页面的特定已修正内容的特定帧;在帧的集合中识别包含特定帧和零个或多于零个按时间先后顺序在其之前的帧的帧的第一子集;从数据库的页面的集合提取页面的第一子集;从帧的第一子集的相应页面提取页面的第二子集;以及基于页面的第一子集的内容和页面的第二子集的已修正内容执行数据库到包含特定页面的已修正内容的先前状态的回滚。

【技术实现步骤摘要】

本文公开的本专利技术涉及数据库的取证分析的领域,且更具体地涉及用于使用预写式日志执行数据库到数据库的先前状态的回滚的方法和设备。背景通常,执行数据库恢复的需要在数据库系统出故障之后(例如在电源故障或系统崩溃之后)产生。为了保持被存储在数据库中的数据的完整性,数据库系统必须将数据库带回到在故障之前存在的最新的一致状态。如果例如系统崩溃出现在银行的两个账户之间的资金转移的中间,则合理的恢复方式将是将数据库重置回到它刚好在资金转移被发起之前所处于的状态,并接着然后再次重做转移。否则,银行可能不能够保证例如钱不被从账户之一提现,即使钱在崩溃之前从未到达另一账户。除了上述内容以外,执行数据库恢复的需要还可由于其它原因而产生。一个这样的原因是,在取证分析中,其中恢复可能已经被自愿删除或修正的数据的需要有时是最重要的。当包含数据的文件被从例如硬盘驱动器删除或被在例如硬盘驱动器上修正时,操作系统通常只更新它的文件系统元数据,其中例如在硬盘驱动器上的特定文件的位置被存储。如果文件被删除,则元数据被更新,而文件的实际数据(如被写到硬盘驱动器的)维持原封不动。因此,即使文件系统元数据被更新或缺失,取证分析也可使用方法(例如数据雕刻),从而试图找出并读取已被删除或修正的文件的原始数据。数据雕刻(例如诸如模式搜索)的很多方法常常是复杂的并依赖于复杂的模型和试探法两者。除了散布的(或分段的)数据的不同的可能置换的数量常常很大的问题以外,方法还可能遭受结果并不总是被保证是正确的事实。数据雕刻方法可以以将来自几个不同的文件的几个片段
一起拼凑成认为是单个文件的东西结束,因而产生错误的结果(错误肯定)。如果错误肯定的数量变得太大,则取证分析的工作变得很难且结果的可信度可能快速降低。用于恢复数据库中的被(无意或)有意地删除或修正的数据的更可靠的方法可以是使用常常由很多数据库系统使用的日志记录功能。为了能够将数据库带回到先前状态(即执行数据库回滚),数据库系统可通过使用所谓的预写式日志(WAL)来记录在数据库上执行的动作(即:对数据库的改变)。当动作在数据库上即将发生时,使用WAL的数据库系统将不直接更新数据库。替代地,数据库系统将确定动作的结果并替代地将已经对数据库做出的改变记录到日志。在动作被执行的时间期间系统出故障的情况下,数据库将已经处于一致状态,且数据库系统可容易检查WAL以查看它在系统出现故障之前达到什么程度,并接着做出关于如何从那里继续进行的决定。为了使WAL不增长得太大,在WAL中的所记录的变化可在定期时机(例如在每个动作被成功地完成之后,或比因此如果想要的稀疏得多)或当被手动触发时被转移回到数据库。被称为检查点操作的这样的操作通常后面是WAL被重置,使得对随后的检查点的新改变从WAL的开头起被再次记录。在US 8,683,262中公开了使用WAL以从系统故障恢复数据库的方法。在那里,首先过滤WAL,使得不相关的动作(例如以后被其它随后的动作变得无效的动作)被忽略,以便减小计算复杂度。使用经过滤的WAL,通过重放在经过滤的WAL中的剩余动作而将数据库从恢复状态转变到正常操作状态。因为所公开的方法的主要着眼点是在故障之后恢复数据库,所以可能产生其中该方法对取证分析有很少用处或没有用处的情况。按照上文,因此需要用于使用WAL来执行数据库到数据库的先前状态的回滚的改进的、更灵活的、更可靠的和更适合用于取证分析的方法。概述本专利技术的目的因此是至少部分地满足上面规定的要求。本专利技术的这个和其它目的至少部分地被如在独立权利要求中限定的本专利技术满足,而优选
的实施方式被在从属权利要求中阐述。本专利技术基于预写式日志可包含允许取证分析提取关于先前数据库状态的信息的信息的见识,其中先前状态的时间可相应于在WAL中的任何检查点(多个),以及其中可保证在一些情况中的所提取的先前状态是真实的先前状态(因此消除获得错误肯定的风险)。在本专利技术的第一方面内,提供了用于将数据库回滚到数据库的先前状态的计算机实现的方法。数据库包含页面的第一集合,且数据库与预写式日志(WAL)相关,表示页面的第二集合的已修正内容的帧的集合可被记录到该预写式日志(WAL)内。如在本文使用的,数据库“页面”表示当存储数据库的内容时由数据库系统使用的数据的单位。如果被存储在数据库中的数据的大小超过单个页面的大小,则数据库数据将被分布在多个页面上并被存储在多个页面中,其中每个页面优选地具有固定大小。当做出对数据库的改变时,例如当信息被添加、更新或移除时,数据库系统可选择只将受影响的页面存储在WAL中,其中页面的已更新或已修正内容将被封装在“帧”中。帧可包含页面本身的已更新内容连同当阅读日志(例如诸如关于在数据库中的什么页面被更新的信息)时和当更新发生时可能有用的其它属性。在WAL中,在帧的集合中的每个帧因此表示相应的页面的已修正内容,且WAL还包含允许帧被按时间顺序排序的信息,使得WAL的读者可计算出帧被以什么顺序记录。数据库还可与指示至少一个页面的已修正内容在至少一个检查点的集合处被从WAL转移到数据库的检查点信息相关,其中每个检查点相应于一个时间点,以及其中在帧的集合中的每个帧相应于所述检查点之一。如在本文使用的,“检查点”可由数据库系统本身发起,例如作为对WAL增长大于预定值的响应或例如作为对某个时间间隔的过去的响应。检查点还可由给出某个命令的用户或由计算机程序(或类似地,即访问数据库)发起。通常,检查点涉及通过将在WAL中的帧内找到的页面的最近(在时间上)修正的内容从WAL转移到数据库并其后执行WAL的“重置”使得WAL可由随后的更新来重写以便节省空间来更新数据库。检查点还可涉及只转移一些页面的已修正内容,而不执行WAL的这样的随后重置。
后者的示例可涉及这样的情况:其中数据库的用户例如有对在WAL中的一个或多个帧的锁定。在这样的情况下,只有一些帧可被立刻转移到数据库,而其它帧将在以后的时间(如果有必要)被转移。如果数据库刚刚被创建或如果检查点操作还没有发生,则数据库的创建可视为检查点。为了确保在检查点操作期间只有页面的最近修正被转移到数据库,在WAL中的每个帧通常相应于某个检查点,且关于某个帧相应于哪个检查点的信息通常被包括在帧本身中。通常,只有相应于最新的检查点的帧将被考虑用于在新的检查点操作期间转移。在第一方面中,该方法可包括选择在被记录到WAL的帧的集合中的特定帧的步骤。特定帧表示相应的特定页面的已修正内容并相应于按时间先后顺序在检查点信息中指示的至少一个检查点的集合中的零个或多于零个检查点之前的检查点。如果特定帧在零个检查点之前,则在最新的检查点操作之后特定帧被记录到WAL,且特定页面的已修正内容还没有被转移到数据库。如果特定帧在一个或多个检查点之前,则在最新的检查点之前帧被记录到WAL,且特定页面的已修正内容可能在先前检查点操作期间已经被转移到数据库。该方法还可包括识别在帧的集合中的帧的第一子集使得第一子集包含特定帧和零个或多于零个按时间先后顺序在其前面的帧的步骤。如果该方法是恢复在某个特定的时间(此时特定帧被记录)数据库(部分地)看起来像什么,则关于什么比特定的时间更早发生的认识是需要的。这被反映,因为只有特定帧和在更早本文档来自技高网
...

【技术保护点】
一种用于到数据库的先前状态的数据库回滚的计算机实现的方法(300),其中所述数据库(101)包含页面的第一集合(D={1,...,N},N≥1,110),其中所述数据库与预写式日志(102)WAL相关,表示页面的第二集合(D′={P′1,...},130)的已修正内容的帧的集合(S={F1,...},120)已经被记录到所述WAL内,每个帧(Fj,j≥1)表示相应的页面的已修正内容(P′j∈[1,L],L≥N),其中所述数据库还与检查点信息相关,所述检查点信息指示至少一个页面的已修正内容在至少一个检查点的集合(C={c1,...})被从所述WAL转移到所述数据库,每个检查点(cl,l≥1)相应于一个时间点,以及在所述帧的集合中的每个帧相应于所述至少一个检查点之一,其中所述WAL还包括允许所述帧被按时间先后顺序排序的信息,所述方法包括以下步骤:在所述帧的集合中选择表示相应的特定页面(PM)的特定已修正内容的特定帧(FM)(S301),所述特定帧相应于按时间先后顺序在所述至少一个检查点的集合(C)中的零个或多于零个检查点之前的检查点;在所述帧的集合中识别帧的第一子集所述帧的第一子集包含所述特定帧和零个或多于零个按时间先后顺序在其之前的帧(S302);从所述页面的第一集合提取页面的第一子集(S303);从所述帧的第一子集(Sf)的相应页面提取页面的第二子集(S304);基于所述页面的第一子集(D1)的内容和所述页面的第二子集(D′f)的已修正内容执行所述数据库到包含所述特定页面(PM)的特定已修正内容的先前状态的回滚(S305),其特征在于:所述特定帧相应于按时间先后顺序在所述至少一个检查点的集合(C)中的多于一个检查点之前的检查点,以及在于所述方法还包括以下步骤:确定所述页面的第一集合(D)是否包含不是所述页面的第二子集的部分的至少一个页面(PB∈D),以及当确定所述页面的第一集合(D)包含不是所述页面的第二子集的部分的至少一个页面(PB∈D)时,指示先前状态不是真实的先前状态。...

【技术特征摘要】
2015.04.28 EP 15165484.51.一种用于到数据库...

【专利技术属性】
技术研发人员:塞巴斯蒂安·赞柯尔贾尼·尼曼玛
申请(专利权)人:米克罗西斯特美信公司
类型:发明
国别省市:瑞典;SE

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

1