用于数据库备份的一致性检验的系统和方法

文档序号:6476152阅读:353来源:国知局
专利名称:用于数据库备份的一致性检验的系统和方法
技术领域
本发明涉及计算机数据库领域,尤其涉及数据库备份完整性校验系统。
背景技术
现代数据库是帮助用户跟踪重要商业事务的关键工具。在许多情形中,数据库的遗失对企业而言是灾难性的。数据库遗失可由多种原因促成;硬件故障、软件故障、工具故障、或影响数据库的任一其它支持结构的自然灾害。因而,数据库遗失后的恢复是正常数据库管理的一个重要方面。在数据库管理的一方面中,通常会在诸如每周的周期性间隔上作完全数据库备份以提供用于恢复的主干成分。具有一功能性的完全数据库备份是对将恢复数据库所需的部分差分的每日数据库备份应用到数据库遗失之前那一天的要求。
通常,数据库管理员会作每周的完全数据库备份并将该备份存储到某些类型的介质中。该介质常常是磁带。该每周的完全数据库备份是数据库恢复机制的主要成分。然而,问题仍然是存储在介质上的数据库备份是否遭到了破坏。被破坏的数据库备份可能不可被完全恢复。一种检查数据库备份成活力的现有技术方法是将该数据库备份重组到原始数据库的另一个工作副本中并对该数据库执行测试。由于现代数据库的大小可能是千兆字节的,该方法根据资源是昂贵的。通常企业不会有未使用的另一个千兆盘或临时可用的在其上可执行数据库备份完整性检查的随机存取存储器介质。然而,这样的完整性检查对于数据库备份策略是至关重要的。
有关数据库的这些至关重要的测试可包括有关其内部的链接数据结构的测试。诸如B树的链接数据结构是便于有效和有组织的数据存储、数据处理、以及数据检索的数据的有效逻辑。链接数据结构的基本组件被称为元素或节点。链接数据结构中的单个节点由标识或“指向”节点链接结构中相邻节点的称为指针的特定字段链接在一起。指针有时也称为引用。
因为链接数据结构的逻辑相邻节点并非必然存储在存储装置上相邻的物理位置,必须准确表示链接数据结构的每个节点。由于在存储装置上缺少从一节点到下一节点的物理相邻性的保证,如果存在无效指针就难以知道哪个节点真正是链接数据结构中的下一逻辑节点。因而,未正确指向链接数据结构内下一逻辑节点的指针可使整个链接数据结构不稳定和不可用。
图1示出数据库中显示多个链接并需要多个指针的基本B树结构。数据库节点A、B、C、D和E(分别为102、104、106、108和110)可具有通过指针支持的彼此之间的分层结构关系。例如,根节点A 102具有分别带有指针152和154的两个子节点B 104和C 106。注意B和C是姐妹并可具有正向和反向指针156和158。叶节点D 108和E 110是节点B 104的子节点,且在B和D之间可具有正向和反向指针160和162,而在B和E之间具有指针164和166。节点B和E彼此是姐妹并可具有正向和反向指针168和170。如果节点B和E以及D和E之间的指针164和168分别遗失或不正确,则从节点B或D到节点E的链接将遗失。这将导致数据库中相应数据关联的遗失。
一般而言,如果链接数据结构中的任一指针被破坏或以其它方式无效,使得指针未正确指向设计为下一节点或子节点的节点,则整个数据结构的完整性将受损害。受损害的数据结构将不可靠或不可用。尽管在仅有几个节点的较小链接数据结构中标识一无效指针是可能的,对于具有数百万节点的较大链接数据结构按照时间和/或计算资源任务就变得非常复杂和昂贵,而如果在各节点之间存在一个以上的无效指针则任务就更困难了。
因此在数据库中校验这种指针的一致性是至关重要的。此外,在数据库备份上执行一致性检查以校验数据库备份的完整性并确保全部恢复可能是至关重要的。然而,在数据库备份上进行一致性检查仍有实际问题。
图2示出包含数据文件205、206、208和日志文件210的典型数据库200。数据文件还被分成也称为页的存储块。这些存储块持有数据库中的记录,并持有与诸如B树的链接数据结构相关联的节点。数据库200的典型数据库备份250不必包含组成数据库200的所有逐个数据文件205、206、208的备份。相反,数据库备份仅需包含当前使用的来自数据文件的某些(可能不同)顺序和格式的块。例如,数据库备份250包含备份文件220,它是原始数据库200中数据文件205-208的备份。数据文件205可包含成千上万的页但仅有一些页(如图2所示使用描述性数字标记“数据文件页”)可由数据库200使用。在图2示例中,数据库备份250中的备份文件220将仅包含来自数据文件205的两个页;即2053和2052。类似的情形还对数据文件206和208存在。因而,数据库备份可以不是方便或兼容的环境或不是用于一致性检查的形式。日志文件210A一般可与数据库200的数据库备份250相关联以提供当数据库备份被置于存储介质上时改变数据库200的任一事务的细节。
使用现有技术的原理,为了检查数据库备份,数据库必须从该数据库备份进行重组,事务日志必须应用于重组数据库备份以将数据库恢复到数据库备份操作完成时所存在的状态,然后必须进行一致性检查。执行这类数据库备份校验所需的盘或随机存取存储空间至少与原始数据库一样大,并且由于现有技术的一致性检查是耗时的而需要大量时间,因为在校验诸如链接指针的项并寻找包含存储器分配映射和数据库模式元数据的页中需要多次通过数据库。当使用诸如磁带的序列介质用于数据库备份时,该任务会变得更令人恐惧。
因而,需要允许校验完全数据库备份的完整性的存储空间和时间有效方法的系统或方法。本发明解决了前述需要并用在此所述的附加优点来处理它们。

发明内容
本发明实现了一种系统和方法,用以执行数据库与数据库备份的一致性检查同时使用比原始数据库少得多的存储空间。在数据库备份上执行一致性检查对校验数据库备份的完整性有用,从而如果原始数据库的重组有必要可由系统管理员作全面恢复。该方法包括对仅包含数据库模式元数据的数据库视图创建和数据库视图的随后创建所需的页的标识。一旦创建了数据库视图,通过加入该数据库备份的事务日志并执行重做操作以及选定的取消操作,可将数据库视图带到一事务一致点。涉及重做或取消的页也可置入数据库视图中。一旦建立事务一致数据库视图,可通过从具有已校正数据的数据库备份或数据视图中读取页的正确版本来在包含于数据库备份中的数据库上执行一次或多次一致性检查。通过确认数据库备份的完整性并因而确保可从数据库的完全备份中执行恢复,本发明增加对恢复策略可靠性的测量。
在使用图3讨论示例性数据库视图之后,将结合图4-5讨论示例性方法和实施例。还结合图6讨论示例性计算环境。


结合附图阅读前面的发明内容和以下说明性实施例的详细描述,能得到更好的理解。为了说明本发明各实施例,在附图中示出本发明的示例性结构;然而,本发明并不限于所揭示的特定方法和装置。在附图中图1是必须确认正确性的典型数据库结构的框图;图2是典型数据库备份的框图;图3是示出本发明的数据库视图方面的框图;图4是示出数据库视图的示例性页的框图;图5是本发明一方法的示例性流程图;图6是其中可实现本发明各方面的示例性计算环境的框图。
具体实施例方式
纵览本发明一实施例实现了一种方法,用以执行包含在数据库备份中的数据库一致性检查的同时使用比原始数据库少的存储空间。在本发明环境中,术语存储空间可以是参照图6的示例性计算环境讨论的任一存储形式,包括但不限于,顺序存储、盘存储、以及随机存取存储及其等效实体。
根据本发明一实施例,原始数据库备份的一致性检查可通过使用从数据库备份及其相应事务日志文件导出的数据库视图来完成。在当前实施例中,数据库视图在通过应用包含在数据库备份中的事务日志作出原始数据库备份的时间点上产生原始数据库的事务一致性视图。一旦可得到事务一致性视图,本发明对该数据库备份作一致性检查。在执行一致性检查时,可先读取来自数据库备份的页,然后可执行对同一页的事务一致性副本是否在数据库视图中存在的检查。如果该页在数据库视图中存在,则使用该页。否则,可使用来自数据库备份的页以执行一致性检查。数据库一致性检查的结果使系统管理员能校验数据库的可工作的完全副本可从该数据库备份中恢复。
本发明在校验中发现,组成数据库的备份是自一致的并且如果原始数据库发生故障则可用以恢复原始数据库是实用的。当数据库备份被存储于诸如磁带或其它串行类读取机制的顺序介质上时,本发明能被最有利地使用。数据库一致性检查仅需顺序存储介质的两轮通过。一轮通过被用以定位需要恢复的已标识页(以使它们进入事务上一致状态)或提供元数据以驱动一致性检查,而第二轮通过则用以执行一致性检查。本发明也可有利地用于基于盘或任何其它类型的存储备份系统,因为页在数据库备份中可被存储在与原始数据库相比完全不同的位置。本发明还有利地允许系统管理员以比数据库原始大小较小的存储空间在数据库备份上执行一致性检查。该特性提供了一种无需创建原始数据库的另一个完全大小副本而进行完整性校验的经济方法。
本发明的示例性实施例各种链接数据结构类型(包括,但不限于,链表、主要和次要索引树等)的存储结构完整性校验中的一个进步在East等人在2001年2月6日提交的专利号为6,185,569的题为“Linked Data Structure Integrity Verification System Which VerifiesActual Node Information with Expected Node Information Stored in a Table”(“用存储在表格中的期望节点信息校验真实节点信息的链接数据结构的完整性校验系统”)的美国专利中揭示。该共同受让专利揭示了在数据库上执行一致性检查的时间有效方法,因而在此全部引入作为参考。
不创建完整的数据库副本而以事务一致性方法查看数据库的一个进步在序列号为10/611,774于2003年6月30日提交的题为“Transaction Consistent Copy-on-Write Databases”(“事务一致的写时复制数据库”)的共同待批专利中揭示。该共同受让专利揭示了提供数据库视图的存储空间有效方法,并在此全部引入作为参考。数据库视图无需创建数据库的完整副本就可提供先前数据库的事务一致视图。
在本发明一方面中,数据库视图被用作产生检查数据库一致性所需的元数据视图的一种工具。该数据库视图还被用以存储各个页,它们需要应用来自事务日志使页在事务上一致的重写和取消操作。这样的数据库视图以及数据库备份,包含了在完成完全数据库备份操作时产生原始数据库副本所需的所有信息。然而,数据库视图本身并不包含所有信息,因而在大小上比原始数据库的完全副本要小。
在本发明环境中,数据库视图包括对应于在数据库备份中呈现的数据库中的每个数据文件的至少一个稀疏文件。在一稀疏文件中,仅有真正需要的文件备份才被写入存储空间。文件的所有其它部分都未获分配。稀疏文件可包含数据库备份所需的任何页的一个副本。使用稀疏文件提供一可能实施例,且它避免了对将页在原始数据文件中的偏置映射到其在稀疏文件中位置的表格的需要。另一可能实施例是使用常规文件(称之为副文件Side File),其中视图所需的页被一个接一个地置于副文件中,且映射表格被用以将带有给定ID的页映射到副文件中一位置。
可全部得到数据库的元数据、模式或目录数据用于一致性检查操作是较佳的。当存储在数据库备份中时,元数据通常是处于数据库系统不可用的形式,因为包含它的页分散于数据库备份的一些文件中并且没有可定位它们的有效方法。此外,在数据库备份中有需要在其上进行重做或取消操作的某些页,因为它们受在数据库备份操作时活动的事务影响。不能进行一致性检查,直到这些页变成一致状态。在一实施例中,数据库视图最好用作可方便地查找元数据、模式或目录页的环境,并是查找需要从事务日志执行的重做或取消操作的页的环境。
本发明参照作为数据库备份中数据单元的页进行描述;然而,预期可使用原始数据库的其它数据单元。
在一致性检查期间,必须检查数据库备份中的每个页。必须检查以判断在先前创建的数据库视图中是否存在同一页的事务性一致版本。如果存在,必须使用来自数据库视图的页版本来执行一致性检查。为了确定要使用特定页的哪个版本,必须确定数据库视图中页有效版本的存在。在一实施例中,直接读取数据库视图以确定页的这种有效版本是否存在。
在另一实施例中,创建副文件映射表格,该表格存储有关给定页版本是否在数据库视图中存在并有效的版本。数据库视图的边缘页表格允许对给定页是否存在于数据库视图作出快速判断。
如图3所示,包含在数据库备份250内的数据库之数据库视图320由稀疏文件305、306和308组成。数据库备份中的每个数据文件(205、206和208)在数据库视图320中具有相应的稀疏文件(分别为305、306和308)。日志副本210A也被包括在数据库视图中以使执行重做和取消操作较简便。在另一实施例中,数据库视图中的每个副文件都存在一独立的边缘页表格。
如前所述,事务日志210是从数据库备份操作开始直至完成对原始数据库200执行的所有事务的串行记录。该事务日志被用以将数据库视图恢复到原始数据库200的数据库备份操作完成之时的时间点。该事务日志可包含两种已完成事务,即已开始并已提交、以及已开始但未提交的不完整事务。不完整事务也被称为未提交事务。
未提交事务可导致事务不一致性,因为数据文件的部分更改并未从缓存区中写入数据文件,且在数据文件中可有来自不完整事务的一些更改。日志文件被用以确保数据库的恢复是事务一致的。这通过使用ARIES(用于恢复和隔离开发语义的算法)-型恢复来完成。记录在事务日志中的还未写入数据文件的每个更改通过在数据库上执行该更改而前滚。为确保数据库的完整性,在事务日志中发现的每个不完整事务通过取消数据库上的更改而回滚。
图4示出了产生从完全数据库备份和事务日志文件导出的事务一致性数据库视图的一个示例。数据库备份400表示数据库的完全备份,包括示例性数据库的所有页401-419。在数据库备份操作期间,事务日志434串行地产生,它记录了在数据库备份操作进行时发生的所有事务。示例事务日志434记录了在数据库备份产生期间在数据库页P 402、Q 404、R 406和S 408上发生的事务。该事务日志记录了页P上的事务在日志记录420处开始而在日志记录430处被提交(或完成)。类似地,页R上的事务在日志记录422处开始而在日志记录424处被提交,而页S上的事务在日志记录428处开始而在日志记录432处被提交。然而,对页Q上的事务仅记录了开始日志记录426。到数据库备份操作完成时并未对页Q上事务记录提交日志记录。因此,对于页Q上事务存在事务不一致。因而应返回页Q上事务以消除该数据库的数据库视图中的变化。
包含在数据库备份中的事务一致性视图480含有表示事务一致性的那些页以及在数据库备份操作完成时该数据库的已校页。因而,在这些页的副本上执行对页P、Q、R和S的重做和取消操作的更改,这导致数据库视图480中的页P’402’、Q’404’、R’406’和S’408’,同时映射到数据库备份400中包含的数据库。注意,然而,并非所有页都活动地呈现在数据库视图中,例如T 409和U 410,因而包含在数据库备份400中数据库的数据库视图需要比数据库备份400或原始元数据少得多的存储空间。
一般而言,日志记录所影响的任何一页(其中数据库备份操作开始后产生日志记录)都会显现于包含在数据库备份中数据库的数据库视图中,因为该日志记录有可能需要重做以使数据库视图一致。此外,受事务的日志记录影响的在数据库备份操作完成时事务仍然活动(诸如需要在数据库视图中回滚的事务)的任一页也可显现在数据库视图中,因为该日志记录将需要被取消而取消该事务可能需要更改数据库视图中的页版本。
从数据库备份400复制到数据库视图480的其它页包括描述原始数据库内容的分配和元数据/目录页。分配和元数据/目录页在一致性检查中可反复使用以跟随,且可能需要“缓存”于数据库视图中以避免从数据库备份中反复查找页方面所固有的性能问题,特别是当数据库备份存储在诸如磁盘的顺序介质上时。一般而言,当在数据库备份中遇到分配和元数据/目录页时可加以标识。通常这种标识是基于特定的页ID或页标题中的页类型标记或表格ID。
从数据库备份400复制到数据库视图480的另一类页是当创建数据库备份时在数据库中被改变的页。在执行数据库备份操作时已改变页可通过覆盖数据库备份操作时间并通常包括在数据库备份或单独日志备份中的事务日志来标识。可基于在数据库备份操作期间确定的并在数据库备份中记录的开始/结束日志序列号LSN,来扫描数据库备份操作期间的事务日志。已改变页ID可存储在临时的存储器内的散列表或类似结构中。
从数据库备份400复制到数据库视图480的另一类页是执行诸如从B-树索引中插入或删除行的逻辑取消操作所必须的那些页。对于B-树上的逻辑操作,附加页是B-树的内部页。这些页可从备份400中获取并由它们所覆盖的键的范围来确定。例如,将键K插入B树的日志记录将需要从该索引的根到包含键K的叶页的所有页。内部页可被标识为包括覆盖K键的范围的页。这些页从数据库备份400复制到数据库视图480。
将数据库视图创新应用到数据库备份提供了一种对包含在备份400并呈现于数据库视图480中的数据库进行一致检查以确保数据库备份完整性的方法。图5是示出无需将包含在数据库备份中的数据库恢复成原始数据库的完全大小存储空间就可检查数据库备份完整性的步骤的流程图。
开始,产生从数据库备份中检索的所有页的列表(步骤510)。当在数据库备份中遇到分配页和元数据/目录页时最好加以标识。通常这种标识是基于特定的页ID或页标题中的页类型标记或表格ID。包括在步骤510列表中的页可包括当创建数据库备份时在数据库中被改变的页。这些已改变页可通过覆盖数据库备份操作时间并通常包括在数据库备份或单独日志备份中的事务日志来标识。可基于在数据库备份操作期间确定的并在数据库备份中记录的开始/结束日志序列号LSN,来扫描数据库备份操作期间的事务日志。已改变页可存储在临时的存储器内的散列表或类似结构中。步骤510列表还可包括带有由事务日志标识的未提交结果的页。包括在步骤510列表中的另一类页是逻辑取消操作所需的页,一般包括分配和元数据页以及查找数据页所需的B-树的内部节点。在一实施例中,限制可能大量的内部节点页的一种方法将是基于需要执行逻辑取消操作的记录的键来过滤它们,如前所述。
然后如在此所述产生数据库视图(步骤515)。然后扫描数据库备份(步骤520)以定位在步骤510标识的页。当扫描备份时,被标识的页和事务日志文件被复制到数据库视图中(步骤525)。事务日志将被用于恢复由在数据库备份操作进行时活动的事务所已改变页,并将它们恢复到一致点。该点通常是在数据库备份操作结束时的时间。然后,恢复到事务一致状态涉及将对数据库视图执行重做操作作为步骤530的一部分。还分析事务日志文件以发现不完整或未提交的事务。未提交事务可通过执行作为步骤530一部分的取消操作来回滚。重做和取消日志记录的效果反映在存储于数据库视图的页副本上。
至此过程已经用比原始数据库少得多的存储空间产生了包含在数据库部分中数据库的事务一致性数据库视图。然后,可对数据库视图和数据库备份的组合进行一次或多次一致性检查(步骤535),因而无需包含在数据库部分中所有页的全部恢复就可检查数据库部分的完整性。在一实施例中,执行一致性检查涉及从数据库部分或数据库视图中以其存储在部分介质中的顺序读取所有数据库页,就像它们被存储在已恢复数据库或常规数据库视图中一样。在此过程中,对于数据库中的每个页,如果它是需要一致性检查的页(即包含表格/索引数据),该页从数据库部分中读取且检查以查看在数据库视图中是否有该页的已改变副本。如果有,则使用该已改变副本用于一致性检查。否则,则使用从数据库部分中读取的页。该过程是较佳的,因为页不会以允许快速阅读特定页的顺序存储在数据库部分中。
页不包含在数据库备份中但在事务记录中引用是可能的。该交易日志的引用通常可用将该页分配或格式化为数据库中新页的日志记录而作出。因而,步骤535的算法包括从数据库视图中读取未包含在数据库备份中的每个页。这可通过两种不同方式轻易做到。一实施例可用一存储器内的表格跟踪从数据库视图中读取的所有页,如上所述。然后添加未读取的任意页。在另一实施例中如果存储器内表格变得太大则提供可选方案;数据库视图中的每个页可用页标题内的标记比特来标记,表示它已受过检查。最后,数据库视图可在完成一致性检查后可任选地被删除(步骤540)。
如果通过了一致性检查,可向数据库管理员确保数据库的数据库备份质量足够高从而如果需要从数据库备份重组数据库则允许从数据库备份的完全数据库恢复。因为数据库备份的完整性是可依赖的已知量,这是有价值的。如果一致性检查失败,则数据库管理员具有若干选项。一个选项是重新执行数据库备份以克服一致性检查失败。这样的失败可以是有故障存储介质或其它问题的结果。
另一选项是通过更改数据库备份使得在数据库视图中看到的经恢复数据库可通过对数据库视图的一致性检查来修复在数据库备份中遇到的特定一致性检查错误。该选项最好应用于对未涉及重做和取消操作的页所做的校正。然后该经修改的数据库备份可具有随后完全数据库恢复所需的完全完整性,如果需要从数据库备份重组数据库的话。
示例性计算装置图6和以下讨论旨在提供一种本发明在其中实现的适当计算环境的简要一般说明。然而,可以理解,手持式、便携式、以及所有种类的其它计算装置可预期在本发明中使用。尽管以下所述是通用计算机,但这仅仅是一个示例,且本发明各实施例可用其它计算装置实现,诸如具有网络服务器互操作性和交互性的客户机。因而,本发明各实施例可在其中包含很少或最少客户机资源的网络化主宿的服务的环境中实现,例如其中客户机装置仅作为对网络/总线接口的网络化环境,诸如置于装置中的对象或其它计算装置和对象。实质上,可存储数据或从中可检索数据的任何地方都是用于操作的所需或适当环境。
尽管不是必需的,本发明各实施例可通过由服务的开发者用于装置或对象的操作系统来实现,和/或包括在应用程序软件中。软件在由一台或多台诸如客户机工作站、服务器或其它装置的计算机执行的诸如程序模块的计算机可执行指令的一般上下文中进行说明。一般而言,程序模块包括执行具体任务或实现具体抽象数据结构的例程、程序、对象、组件、数据结构等等。通常,在各实施例中可按需组合或分配程序模块的功能。另外,本领域技术人员会理解,本发明在其它计算机系统配置中也是可以实践的。其它适用于本发明的众所周知的计算系统、环境、和/或配置包括,但不限于,个人计算机(PC)、自动取款机、服务器计算机、手持式或膝上型装置、多处理器系统、基于微处理器的系统、可编程电器消费品、网络PC、、电器、灯、环境控制元件、小型计算机、大型机等等。本发明还可在分布式计算环境中实践,其中任务由经通信网络/总线或其它数据传输介质连接的远程处理装置执行。在分布式计算环境中,程序模块可被置于包括存储器存储装置的本地和远程存储器存储介质中,且客户机节点可转而用作服务器节点。
因而尽管如上清楚地所述,图6示出了其中可实现本发明各实施例的适当计算系统环境600的一个示例,该计算系统环境600仅是适当计算环境的一个示例,并非旨在提出本发明使用或功能性范围的任何限制。计算环境600也不应被解释为对示例性操作环境600中所示的任一组件或其组合有任何依赖性或任何需求。
参照图6,实现本发明的示例性系统包括计算机610形式的通用计算装置。计算机610的组件可包括,但不限于,处理单元620、系统存储器630以及把包括系统存储器在内的各种系统组件耦合到处理单元620的系统总线621。系统总线621可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线架构的任一种的本地总线。作为示例,而非限制,这些架构包括工业标准架构(ISA)总线、微信道架构(MSA)总线、扩展ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和也称为Mezzanine总线的外围部件互连(PCI)总线。
计算机610通常包括各种计算机可读介质。计算机可读介质可以是能被计算机610访问的任何可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能光盘(DVD)或其它光学存储技术、磁盒、磁带、磁盘存储或其它磁性存储装置、或任何其它可用于存储所需信息并可由计算机610访问的介质。通信介质通常包括诸如载波或其它传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语“调制数据信号”意指以在信号中以信息编码的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直线连接的有线介质,和诸如声学、射频、红外线和其它无线介质的无线介质。以上任何介质的组合也应包括在计算机可读介质的范围中。
系统存储器630包括诸如只读存储器(ROM)631和随机存取存储器(RAM)632的易失性和/或非易失性存储器形式的计算机可读介质。包含帮助计算机610如在起动时在元件间传送信息的基本例程的基本输入/输出系统(BIOS)633通常存储在ROM 631中。RAM 632通常包含可被处理单元620立即访问和/或现时操作的数据和/或程序模块。作为示例,而非限制,图6示出了操作系统634、应用程序635、其它程序模块636、和程序数据637。
计算机610还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图6图示了读取和写入不可移动、非易失性介质的硬盘驱动器641,读取和写入可移动、非易失性磁盘652的磁盘驱动器651,读取和写入可移动、非易失性光盘656,诸如CD ROM、CDRW、DVD或其它光学介质的光盘驱动器655。其它也可用在示例性计算环境中的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,如盒式磁带、闪存卡、数字多功能光盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器641通常通过诸如接口640的不可移动存储器接口与系统总线621连接,而磁盘驱动器651和光盘驱动器655通常通过诸如接口650的可移动存储器接口与系统总线621连接。
如上所述并如图6所示的盘驱动器及其相关联的计算机存储介质为计算机610提供计算机可读指令、数据结构、程序模块、和其它数据的存储。在图6中,例如,硬盘驱动器641被示为存储操作系统644、应用程序645、其它程序模块646、和程序数据647。注意这些组件可以与操作系统634、应用程序635、其它程序模块636、和程序数据637相同或不同。在此给予操作系统644、应用程序645、其它程序模块646、和程序数据647的不同序号至少说明他们是不同的副本。用户可通过输入装置如键盘662和诸如鼠标、跟踪球或触摸板等定位装置661向计算机610输入命令和信息。其它输入装置(未示出)可包括话筒、游戏杆、游戏垫、卫星接收器、扫描仪等等。这些和其它输入装置常常通过与系统总线621耦合的用户输入接口660与处理单元620相连,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口连接。监视器691或其它类型的显示装置也可通过诸如视频接口690的接口与系统总线621相连。监视器691或其它类型的显示装置也可通过诸如视频接口690的接口连接到系统总线621,而该接口可与视频存储器(未示出)通信。除了监视器,计算机还可包括诸如扬声器697和打印机696的其它输出装置,它们通过输出外围接口695相连。
计算机610可以在使用与一台或多台远程计算机,诸如远程计算机680的逻辑连接的网络化环境中运行。远程计算机680可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,而且通常包括上述与个人计算机610相关的许多或全部组件,尽管在图6中仅图示了存储器存储装置681。图6中所描绘的逻辑连接包括局域网(LAN)671和广域网(WAN)673,但也可包括其它网络。这样的网络化环境在办公室、企业范围计算机网络、企业内部互联网和因特网上是常见的。
当用于LAN网络化环境中时,计算机610通过网络接口或适配器670与局域网671连接。当用于WAN网络化环境中时,计算机610通常包括调制解调器672或其它用于在广域网673,诸如因特网中建立通信的装置。可以是内置式或外置式的调制解调器672与系统总线621通过用户输入接口660或其它适当机制连接。在网络化环境中,与计算机610相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图6示出了驻留于存储装置681中的远程应用程序685。应当理解,所示网络连接是示例性的,且也可以使用其它用于在计算机间建立通信连接的技术。
各种分布式计算框架已经和正在按照个人计算和因特网的融合进行开发。个人和商业用户等被提供以应用程序和计算装置的可无缝互操作的和Web启用的接口,使计算动作更加面向Web浏览器或网络。
例如,可从微软公司得到的微软.NETTM平台,包括服务器、诸如基于Web数据存储的基块服务、以及可下载装置软件。尽管示例性实施例在此结合驻留于计算装置的软件进行描述,但本发明一实施例的一个或多个部分还可通过以下来实现操作系统、应用编程接口(API)或协处理器、形式装置及请求对象的任一个之间的“中介”对象,诸如可通过NETTM的所有语言和服务以及在其它分布式计算框架中执行、支持或访问的操作。
如上所述,尽管本发明的示例性实施例已结合各种计算装置和网络结构进行了描述,其中实现有益于在数据库备份上执行一致性检查的系统所需的基本概念可应用于任何计算装置或系统。因而,结合本发明各实施例描述的方法和系统可应用于各种应用程序和装置。尽管示例性编程语言、名字和示例在此被选为各种选择的代表,这些语言、名字和示例并非旨在作限制。本发明技术人员将理解,有许多提供获取与本发明各实施例所取得的相同、类似或等效系统和方法的对象代码的方法。
在此所述的各种技术可结合硬件或软件,或在适当时结合两者的组合来实现。因而,本发明的方法和装置,或者其中的某些方面和部分,可取诸如软盘、CD-ROM、硬盘驱动器、或任何其它机器可读存储介质的有形介质中包含程序代码(即指令)形式,其中当程序代码由诸如计算机的机器载入并执行时,该机器成为用于实践本发明的装置。在可编程计算机上的程序代码执行情形中,计算装置通常包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元素)、至少一个输入设备、和至少一个输出设备。
尽管本发明已结合各种情形的优选实施例进行了描述,要理解可使用其它类似实施例,或者可对所述实施例作更改和添加用于执行本发明的系统功能,而没有偏离本发明。此外,应强调包括手持式装置操作系统和其它应用程序专用操作系统的各种计算机平台是可预期的,特别是当无限网络装置的数量持续激增时。因此,不应把本发明限制在任一单个实施例中,而应当根据所附权利要求在广度和范围中进行解释。
权利要求
1.一种用于在数据库备份上执行一致性检查的方法,其特征在于,所述方法包括产生要从数据库备份中检索的页列表;通过读取所述数据库备份来检索所述列表中的所述页;从所述数据库备份创建一数据库视图,其中所述数据库视图比包含在所述数据库备份中的所述数据库需要较少的存储空间;将事务日志和所述被检索页复制到所述数据库视图中;将所述数据库视图恢复到事务一致状态;以及通过从所述数据库备份和所述数据库视图中读取所有数据库页来在所述数据库备份上执行一致性检查。
2.如权利要求1所述的方法,其特征在于,产生要从数据库备份中检索的页的列表包括产生一页列表,包含分配和元数据页、当所述数据库备份创建时在所述数据库中被改变的页、包含在数据库备份完成时未提交结果的页、以及执行逻辑取消操作所需页的至少之一。
3.如权利要求2所述的方法,其特征在于,产生包含执行逻辑取消操作所需页的页列表包括使用包含于更新的日志记录中的一个键,以确定需要B-树的哪些内部节点页来执行特定日志记录的逻辑取消操作。
4.如权利要求1所述的方法,其特征在于,产生所述页的列表包括扫描所述数据库备份中的所述事务日志,以找到在创建所述数据库备份期间已改变的页。
5.如权利要求1所述的方法,其特征在于,在所述列表中检索所述页包括一次性地读取完全数据库备份并将所述列表中的所述页复制到所述数据库视图中。
6.如权利要求1所述的方法,其特征在于,从所述数据库备份创建数据库视图还包括创建反映在特定时间点上数据库备份的所述内容的数据库视图。
7.如权利要求1所述的方法,其特征在于,复制事务日志包括复制包含在备份所述数据库时所发生事务的一事务日志。
8.如权利要求1所述的方法,其特征在于,将所述数据库视图恢复到事务一致状态还包括在不反映所述数据库备份操作期间发生的所有所述已改变页上执行重做操作。
9.如权利要求8所述的方法,其特征在于,所述重做操作是基于一相关联的事务日志,从而所有已提交事务反映在所述数据库视图中。
10.如权利要求8所述的方法,其特征在于,还包括基于所述相关联的事务日志在页上执行取消操作,从而从所述数据库视图中移除所有未提交事务的影响。
11.如权利要求1所述的方法,其特征在于,还包括仅读取所述数据库备份两次;一次用于在所述列表中定位所述页而另一次执行所述一致性检查。
12.如权利要求1所述的方法,其特征在于,还包括延迟所述一致性检查直到已使所述数据库视图在事务性上一致。
13.如权利要求1所述的方法,其特征在于,还包括使用所述数据库备份和所述事务性一致数据库视图来执行所述一致性检查。
14.如权利要求13所述的方法,其特征在于,执行一致性检查包括从所述数据库视图读取所有页一次;以及如果在所述数据库视图中存在所述页的已校正版本,则在一致性检查中使用来自所述数据库视图的页。
15.如权利要求14所述的方法,其特征在于,还包括如果在所述数据库视图中不存在所述页的已校正版本,则在一致性检查中使用来自所述数据库备份的页。
16.如权利要求13所述的方法,其特征在于,还包括确保未在数据库备份中发现但相反仅在所述视图中发现的所有页被包括在所述一致性检查中。
17.一种系统,其特征在于,包括一输入装置,应用于接收数据库备份信息和日志事务数据的至少之一;可访问存储器的一处理器,所述存储器具有软件组件的指令;以及一软件组件,它在执行时执行一方法,包括产生要从数据库备份中检索的页的列表;通过访问所述数据库备份来检索所述页;从所述数据库备份创建数据库视图,其中所述数据库视图比包含在所述数据库备份中的所述数据库需要较少的存储空间;将事务日志和所述被检索的页复制到所述数据库视图中;将所述数据库视图恢复到事务一致状态;以及使用所述数据库备份和所述事务一致数据库视图来对所述数据库备份执行一致性检查。
18.如权利要求17所述的系统,其特征在于,所述执行一致性检查的软件组件步骤包括从所述数据库视图读取所有页一次;以及如果在所述数据库视图中存在所述页的已校正版本,则在一致性检查中使用来自所述数据库视图的页。
19.如权利要求18所述的系统,其特征在于,还包括如果在所述数据库视图中不存在所述页的已校正版本,则在一致性检查中使用来自所述数据库备份的页。
20.如权利要求17所述的系统,其特征在于,所述执行一致性检查的软件组件步骤还包括确保未在数据库备份中发现但相反仅在所述视图中发现的所有页被包括在所述一致性检查中。
21.如权利要求17所述的系统,其特征在于,还包括用于监视所述一致性检查的状态的显示装置。
22.如权利要求17所述的系统,其特征在于,所述数据库备份包括顺序存储、盘存储和随机存取存储之一。
23.如权利要求17所述的系统,其特征在于,所述软件组件方法还包括读取所述数据库备份仅两次;一次用于定位所述页的列表而另一次执行所述一致性检查。
24.如权利要求17所述的系统,其特征在于,产生所述页的列表的软件组件步骤包括扫描所述数据库备份中的所述事务日志,以找到在创建所述数据库备份期间已改变的页。
25.如权利要求17所述的系统,其特征在于,产生包含执行逻辑取消操作所需页的页列表的软件组件步骤包括使用包含用于更新的日志记录中的一个键,以确定需要B-树的哪些内部节点页来执行特定日志记录的逻辑取消操作。
26.如权利要求17所述的系统,其特征在于,从所述数据库备份创建数据库视图的所述软件组件步骤包括创建反映在特定时间点上数据库备份的所述内容的数据库视图。
27.如权利要求17所述的系统,其特征在于,将所述数据库视图恢复到事务一致状态的所述软件组件步骤还包括基于所述相关联的事务日志对页执行重做和取消操作,从而所有已提交操作被反映在所述数据库视图中,并且从所述数据库视图中移除所有未提交事务。
28.一种具有计算机可执行指令的计算机可读介质,所述指令用于执行对数据库备份运行一致性检查的方法,其特征在于,所述方法包括产生要从数据库备份中检索的页的列表;通过读取所述数据库备份来检索所述页;从所述数据库备份创建数据库视图,其中所述数据库视图比包含在所述数据库备份中的所述数据库需要较少的存储空间;将事务日志和所述被检索页复制到所述数据库视图中;将所述数据库视图恢复到事务一致状态;以及通过从所述数据库备份和所述数据库视图之一中读取所有数据库页来对所述数据库备份执行一致性检查。
29.如权利要求28所述的计算机可读介质,其特征在于,所述产生要从数据库备份中检索的页的列表的步骤还包括产生一页列表,包含分配和元数据页、当所述数据库备份创建时在所述数据库中已改变的页、包含在数据库备份完成时未提交结果的页、以及执行逻辑取消操作所需页的至少之一。
30.如权利要求28所述的计算机可读介质,其特征在于,产生所述页的列表包括扫描所述数据库备份中的所述事务日志,以找到在创建所述数据库备份期间已改变的页。
31.如权利要求28所述的计算机可读介质,其特征在于,在所述列表中检索所述页的所述步骤包括读取完全数据库备份。
32.如权利要求28所述的计算机可读介质,其特征在于,从所述数据库备份创建数据库视图还包括创建反映在特定时间点上数据库备份的所述内容的数据库视图。
33.如权利要求28所述的计算机可读介质,其特征在于,复制事务日志的所述步骤包括在完成所述数据库备份时复制包含事务的一事务日志。
34.如权利要求28所述的计算机可读介质,其特征在于,将所述数据库视图恢复到事务一致状态的所述软件组件步骤还包括基于所述相关联的事务日志对事务执行重做和取消操作,从而从所述数据库视图中移除所有未提交事务。
35.如权利要求28所述的计算机可读介质,其特征在于,还包括读取所述数据库备份仅两次的所述步骤;一次用于定位所述页的列表而另一次执行所述一致性检查。
全文摘要
一种用于对数据库的数据库备份执行一致性检查的方法无需从数据库备份中进行原始数据库的完全恢复就可执行。相反,数据库视图可被用作一种用于提供现有完全数据库备份的一部份的事务一致性视图的较小存储要求工具。该数据库视图结合数据库备份和事务日志包含了无需从数据库备份完全重组原始数据库就可在数据库备份上执行一致性检查所需的所有信息。一致性检查可对数据库视图以及数据库备份进行以验证完全数据库备份的完整性,来增加数据库恢复方案的经改进可靠性。
文档编号G06F17/00GK1784677SQ200480001712
公开日2006年6月7日 申请日期2004年7月29日 优先权日2004年3月31日
发明者P·S·兰达尔, M·J·兹威林 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1