用于数据模型中实体的自动维护与修复的系统和方法

文档序号:6467937阅读:180来源:国知局
专利名称:用于数据模型中实体的自动维护与修复的系统和方法
技术领域
本发明一般涉及文件系统管理,并且尤其涉及确保对于一种数据模型的数 据可靠性和一致性的自动化的文件系统维护与修复。本发明的各个方面属于在 一种数据实体级别上响应于并且校正逻辑数据误差,而不丢失其它向下级别 (子)数据实体。尤其是,本发明的各个方面特别属于在一个基于项目(item) 的硬件/软件接口系统中逻辑型数据的维护。
背景技术
虽然客户端数据库平台(即家庭和商业台式计算机)使用一种比服务器平 台上质量低得多的硬件,即使服务器类别硬件(控制器、驱动器、磁盘等等) 也可以导致"物理"上的数据损坏,以至读出操作不返回数据库应用程序写入 数据存储器中的内容。当然,对于各种理由的具有客户端数据库平台(相对于服 务器数据库平台)这显然是一个更加丰富问题,所述理由包括但不局限于在写 操作当中由于意外的电源断电(其依次导致损害的页面和潜在的数据库损坏) 而导致的任意地断电的客户端机器增加的可能性,然而对于服务器数据库系统 更加普遍的是利用非中断电源以缓和断电问题。媒体衰退是另一个"物理"数 据损坏的来源,其中物理存储器媒体超时就会几乎磨损。然而涉及可靠性的另 一个来源是来自"逻辑"损坏的检测和恢复,其由偶然的(例如程序错误)或 致命的(例如病毒)的软件错误所引起。
传统地数据库(以及数据库文件系统)的维护与修复已经落到数据库管理者等等具有良好开发技能以及具有数据库系统高深知识者的身上,或者至少落 到熟悉并且经常使用数据库系统的个人以及相对熟练数据库技术的许多人身 上。另外一个方面,操作系统以及应用程序的普通消费者和业务最终用户很 少利用数据库,并且对于数据库维护以及修复问题的处理基本上未受过好的培 训。
虽然过去不相干的这两组之间的技能水平大不相同,然而硬件/软件接口 系统的数据库实施的文件系统创建了一种方案,其中这些较少经验的最终用户 将面对他们基本上不能解决的数据库维护和修复问题。因此一个业务/消费者
数据库实施的操作系统文件系统、或简称"数据库文件系统"(DBFS)必须能 够检测出损坏并且恢复它的数据库到一种相互影响的一致状态,在不可恢复的 数据丢失的情况下,DBFS则必须保证在该级别原子变化单元中的逻辑型数据 和维护的数据的一致性(即,在对于一个基于项目DBFS中的"项目"级别)。此 外,对于迟钝提交模式(lazy commit mode)下所缺省的DBFSs运行,恰好在不 正常的关闭前所提交的事务持久性是不被保证的并且必须被说明和校正。
此外,虽然业务/消费者最终用户将大大地受益于自动化DBFS的维护和恢 复,但是数据库管理者以及那些数据库技能大师同样受益于解决一般的数据库 维护与修复的方案。在本领域对于数据库管理员来说使用数据库工具(例如 SQL Server 2000提供的数据库协调顾问)是常事,但是这些工具不直接处理可 靠性,相反而是提供一个管理数据库备份的装置,并且不以几乎自动化的方式, 而是需要包含实在的数据库管理员,尤其当数据库备份不可靠或出现其它修复 问题。因此处理数据库可靠性的自动化解决办法将同样有益于数据库管理员 及其他熟练的数据库用户。
DBFS的数据可靠性系统(DRS)包括一个主机(framework)以及一组用 于自动地执行数据库管理(DBA)任务的策略并且几乎不涉及或不直接涉及最 终用户(以及因此基本上对于所述最终用户是透明的)。对于若干实施例,DRS 主机实施用于向DRS插入误差以及事件报告、策略以及误差/事件处理算法的 机制。尤其是,对于这些实施例DRS是一个负责后台DBFS维护以及修复的 后台线程,以及因此在高级别上DRS保护并且维护DBFS的总体完好。对于某些实施例,DRS包括对于物理数据损坏的以下特征(1)对于所有页面类型, 在一个页面级别上响应并且校正数据损坏;以及(2)试图对于索引页面损坏 (簇和非簇)、数据页面损坏以及日志文件中的页面损坏的第二级别恢复(重
构或重新存储)。因此,对于某些实施例,DRS包括以下功能(i)处理修复/ 恢复数据损坏情况;(ii)改善本系统的可靠性以及有效性;以及(iii)必要时 为熟练的第三方保持一个DRS误差/事件历史表以调试数据库或存储器引擎问 题。
虽然实施例可以处理物理数据损坏(即校正存储在物理存储器媒体上的数 据库中的损坏数据),但是一个稳固的DRS同时将处理实体(例如项目、扩展和 /或关系)的逻辑型数据损坏,其一般保存在数据存储器中,以便保证所述数据 存储器中所有这些实体都是一致的并且符合数据模型规则。

发明内容
本发明各种实施例涉及一种DBFS的数据可靠性系统(DRS),所述DBFS 包括一种保存在一种数据库(物理数据)中的文件系统(逻辑型数据)或换言 之,包括表示一种文件系统(逻辑型数据)的数据库(物理数据)。DRS可以 包括一个主机(framework)以及一组用于自动地执行数据库管理(DBA)任 务的策略并且几乎不涉及或不直接涉及最终用户(以及因此基本上对于所述最 终用户是透明的)。DRS主机实施用于向DRS插入误差以及事件报告、策略 以及误差/事件处理算法的机制。尤其是,对于这些实施例DRS是一个负责后 台DBFS维护以及修复的后台线程,以及因此在高级别上DRS保护并且维护 DBFS的总体完好。
对于本发明各种实施例,DRS包括以下特征
物理数据校正:对于所有页面类型,在页面级别上响应并且校正物理数据 损坏,其中可以包括试图改造或修复索引页面损坏(簇和非簇)、数据页面损坏
以及日志文件中的页面损坏的操作。
逻辑数据校正在一个基于项目的操作系统中响应以及校正"实体"的 逻辑型数据损坏,例如项目、扩展和/或关系(一个基于项目的操作系统是一个基于项目的硬件/软件接口系统的一个实例)。
对于第二个核心,本发明的几个实施例特别涉及一种逻辑一致性检验器
(LCC),其分析以及校正典型地保存在数据存储器中的实体(例如项目、扩
展和/或关系)的逻辑"损坏",以便保证所述数据存储器中的所有这些实体都
是一致的并且符合数据模型规则。对于某些实施例LCC可以是自治的,而对于 其它实施例它也可以耦合到一个物理一致性检验器(PCC),其用于检测并且 校正物理数据损坏,和/或对于另外其它实施例LCC可以包含DRS的一个组件。


当结合附图来阅读时,更能理解上述概述以及以下优选实施例的详细说 明。为了说明本发明,附图示出本发明示例性设计;然而本发明不局限于公开
的这些具体方法和工具。在这些附图中
附图1是表示本发明的一些方面可以被包括在其中的一个计算机系统的
方框附图2是说明表示本发明若干实施例的数据库文件系统(DBFS)中的数 据可靠性系统(DRS)的结构的框附图3是说明对于本发明某些实施例,逻辑上确定损坏实体的方法的处理 流程附图4是一个处理流程图,其说明对于本发明某些实施例的用于解决实体 中的逻辑错误的LCC的三股(three-prong)方法。
附图5A和5B是说明对于本发明某些实施例的涉及项目实体的替换方法 的方框图;以及
附图6A和6B是说明对于本发明某些实施例的涉及关系实体的替换方法 的方框图。
具体实施例方式
本主题以满足法定要求的特性加以描述。然而,说明书本身不想限制本专 利的范围。更确切的说,发明人已经想到所要求的主题可以以其它的方式来实施,g卩,通过包括和本文的描述相似的不同的步骤或步骤的组合,或结合其它
现有的或者将来的技术。此外,尽管术语"步骤"这里可以用来暗示所使用的 方法的不同单元,但是该术语不应该被解释为暗示这里公开的各个步骤当中或
之间任意的具体的顺序,除非以及除了当明确地描述单个步骤的顺序的时候。 上述概述提供本发明特征的一个概述。本发明一个实施例的详细说明如
下。对于如下所述各个实施例,本发明的特征被描述为单独在MICROSOFT SQL SERVER数据库系统(有时相当于这里简写的"SQL")中实施或结合入 下一代个人电脑操作系统(通常称为"Windows Longhorn"或简称"Longhorn") 的MICROSOFT WinFS文件系统。如上所述,SQL SERVER包括 MICROSOFT.NET公共语言运行时间(CLR)以允许管理的代码写入并且执行 以在SQL SERVER数据库的数据存储器上操作。虽然如下所述实施例在这种 环境中操作,可以理解的是本发明并不局限于SQLSERVER产品的实施。相 反地,本发明可以以支持执行面向对象的编程代码以在数据库存储器上操作的 任何数据库系统来实施,诸如面向对象的数据库系统以及具有目标关系扩展的 关系数据库系统。因此,很清楚本发明不局限于如下所述具体的实施例,而是试 图覆盖如附加权利要求定义的本发明的精神以及范围内所有的修改。 计算机环境
本发明的大量实施例可以在一个计算机上执行。附图1及以下的讨论用 来提供一个本发明可以实施的一个合适的计算环境的简短的一般说明。尽管 不需要,但是本发明可以在计算机可执行指令的一般环境中描述,诸如通过一个 计算机执行的程序模块,所述计算机例如一个客户工作站或一个服务器。 一般 地,程序模块包括执行具体的任务或实施具体的抽象数据类型的例程、程序、目 标、组件、数据结构等等。此外,本领域的技术人员将会理解本发明可以由其 他的计算机系统配置来实施,包括手持装置、多处理器系统、基于微处理器或 者可编程的消费者电子设备、网络PC、小型计算机、大型计算机等等。本发 明还可以在分布式计算环境中实施,其中所述任务由通过通信网络连接的远程 处理装置执行。在一个分布计算环境中,程序模块可以位于本地以及远程存储 器存储设备上。如附图1所示,一个示例性通用计算机系统包括一个传统的个人电脑20等
等,包括处理装置21、系统存储器22以及系统总线23,所述系统总线23用于 将包括系统存储器的各个系统组成部分耦合到处理部件21。系统总线23可以 是任何几种类型的总线结构,包括存储器总线或存储控制器、外围总线以及使 用任何总线体系结构的本地总线。系统存储器包括只读存储器(ROM) 24以 及随机存取存储器(RAM) 25。基本输入/输出系统26 (BIOS)保存在ROM 24中,其包括有助于在个人电脑20的组件之间传递信息的基本例程,例如在 启动期间。个人电脑20更进一步的包括用于从/向一个未示出的硬盘读取以及 写入的硬盘驱动器27、用于从/向一个可移动的磁盘29读取/写入的磁盘驱动 器28,以及用于从/向一个可移动的光盘31例如CD ROM或其它光学介质读取/ 写入的光盘驱动器30。硬盘驱动器27、磁盘驱动器28以及光盘驱动器30分 别通过一个硬盘驱动器接口 32、磁盘驱动器接口 33以及一个光驱接口 34连接 到系统总线23。驱动器以及它们相关的计算机可读取媒体提供计算机可读指 令、数据结构、程序模块及其它个人电脑20的数据的非易失性存储器。尽管 这里描述的示例性环境使用了一个硬盘、 一个可移动的磁盘29以及一个可移 除的光盘31,本领域的技术人员应该理解本示例性操作环境中还可以使用由一 个计算机访问、可以存储数据的其他的类型的计算机可读媒体,例如磁带盒、 快擦写存储卡、数字视频磁盘、Bernoulli盒式磁盘[带]、随机存取存储器 (RAMs)、只读存储器(ROMs)等等。
大量程序模块可以存储在硬盘、磁盘29、光盘31、 ROM 24或RAM 25 上,包括操作系统35、 一或多个应用程序36、其它程序模块37以及程序数据 38。用户可以通过输入装置例如键盘40以及指示器42向个人电脑20键入命 令以及信息。其它的输入装置(未显示)可以包括麦克风、操纵杆、游戏衬 垫、卫星磁盘、扫描仪等等。这些及其它输入装置经常通过耦合到系统总线 的串行端口接口 46连接到处理部件21,但是还可以通过其它接口连接,例如并 行端口、游戏端口或通用串行总线(USB)。监视器47或其它类型显示设备同 样经过一个接口连接到系统总线23,所述接口例如一个视频适配器48。除了 监视器47,个人电脑一般包括其它外围输出设备(未显示),例如扬声器以及打印机。附图1的示例性系统同样包括一个主机适配器55、小型计算机系统接
口 (SCSI)总线56以及一个连接到SCSI总线56的外部存储器装置62。
个人计算机20可以通过使用与一个或多个远程计算机(例如一个远程计 算机49)的逻辑连接而在运行在一个网络环境中。远程计算机49可以是另一 个个人计算机、 一个服务器、 一个路由器、 一个网络PC、 一个节点装置或其 它公用网络节点,并且一般地包括相对于个人计算机20的如上所述的许多或所 有的元件,尽管在附图1中仅仅示出了一个存储装置装置50。附图1示出的逻 辑连接包括一个局域网(LAN) 51和一个广域网(WAN) 52。这种网络环境 在办公室、企业的广域计算机网络、内部网以及互联网中是常见的。
当用于一个局域网网络环境中,个人计算机20通过网络接口或适配器53 连接到局域网51。当用于一个WAN网络环境中,个人计算机20—般地包括 一个调制解调器54或用于通过广域网52例如互联网建立通信的其它装置。调 制解调器54可以是内部或者外部的,经过串行端口接口46连接到系统总线23。 在一个网络环境中,相对于个人计算机20示出的程序模块或其中部分可以保 存在远程存储器存储装置中。可以理解的是显示的网络连接是示例性的,还 可以使用建立计算机间通信连接的其它装置。
虽然可以想象本发明的大量实施例尤其适合于计算机化的系统,但是本文 献不想用本发明来限制这些实施例。相反地,这里使用的术语"计算机系统" 试图包括能够存储和处理信息和/或能够使用存储信息以控制装置本身的性能 或运行的任何以及所有的装置,而不管这种装置本质上是电子的、机械的、逻辑 的或虚拟的。
数据可靠性系统(DRS)的概述
对于本发明的若干实施例,数据可靠性系统(DRS)是一个在后台维护以 及修复数据库的线程,并且从而保护数据库文件系统(DBFS)的全面完好。附 图2是一个说明DBFS中DRS结构的方框图。在该附图中,向大量应用程序 212、214以及216提供操作系统级服务的操作系统202包括连接到持久数据存 储器232的DBFS 222。 操作系统202进一步包括一个DRS 242,每当例如发 现来自持久数据存储器232中的大量页面234、236以及238中的页面误差240时,其通过DBFS 222请求244,并且DRS 242然后根据页面误差240执行修复 操作。
本发明的某些实施例提供DRS是可扩充的以便恢复策略以及检测机制在 DBFS释放以后可被更新。若干实施例涉及当DBFS数据库保持联机时DRS 运行修复。然而其它实施例涉及对DBFS存储器的完全访问(即sysadmin权 限)。而其它实施例将具有对故障实时地作出检测和反应的能力。
对于若干实施例,对所维护的数据而言,DRS修复将在级别变换单元中相 互影响(即在基于项目的DBFS的"项目"级别)。对于各个实施例,修复要么 完全地恢复一个项目要么取消它的更改(以及因此从不部分地校正错误),并且 即使在处理过程中途中发生重新启动DRS也可以继续恢复/复位工作。对于本 发明的若干实施例,DRS将会支持SQL事件以便如果SQL激发了一个一般的 事件,DRS可以截取它并且作出反应(包括但不局限于823/824事件)。另外, 本发明的某些实施例涉及数据库引擎,该数据库引擎可被修改以发送将由DRS 特定处理的错误条件的DRS—特定事件。
对于本发明的各个实施例,每当DBFS从磁盘读取或写入页面时,就会检 测出物理和/或逻辑损坏,而在这种情况下SQL则根据损坏的类型产生大量误差 中的一个,并且也将会激发特定的DRS事件以通知它的具体误差条件,并且 DRS将接收那些误差并且将它们放在一个输入队列中以便处理。
对于本发明的若干实施例,确定一个页面是否是物理损坏可以通过各种装 置完成,包括但不不局限于(a)检查对于一个页面的校验和并且如果校验和 是无效的,则认为该页面损坏或(b)通过检验日志序号(LSN)来查看它是否 超过日志文件的结尾(其中LSN是一个整数,其随每次处理递增,以便如果 日志文件中的最后处理是LSN 432并且找到一个具有更大的LSN的页面那么 就可定发生了一个无序的写入错误)。关于这一点,存在四个主要类型的页面损 坏可以影响DBFS的操作(除了例如程序错误等等的其它原因),而这四个类型 包括页面损坏、媒体衰退、硬件故障以及无序写入。当数据的一个页面没有 被正确的原始写入就发生了页面损坏,并且因此页面的任何部分可能被损坏,这 是因为在写入期间仅仅一个页面的一些扇区在事件故障之前写入到磁盘,所述故障事件例如电源故障或扇区写入错误。当一个数据页面位被物理媒介衰退 损坏时就会发生媒体衰退。硬件故障可以以各种理由产生,其涉及总线、控 制器或硬盘装置。至于无序写入,这些误差产生于这样一个事实,即IDE驱
动器不能保证写入磁盘的顺序,特别是IDE驱动器具有写入高速缓存使能(打
开),并且因此对数据存储器的写入可能会无序地发生。如果发生部分连续的 无序写入但是通过电源故障而中断,例如然后发生若干误差,例如在相关的日志 实体被写入之前数据页面被写入磁盘。当通过检测数据页面上的日志序号
(LSN)检测出无序错误时,还没有便利的方式来处理这种对每一个页面的读 取的缺乏。
逻辑一致性检验器
本发明的各种实施例特别地涉及一种逻辑一致性检验器(LCC),其分析 并且校正实体的逻辑"损害"(例如项目、扩展和/或关系),所述实体表示保存 在数据存储器中以便确保所述数据存储器中的所有实体都是一致的并且符合 数据模型规则。对于某些实施例LCC可以是自治的,而对于其它实施例它也可 以连接到一个物理一致性检验器(PCC),其用于检测并且校正物理数据损坏, 和/或对于另外其它实施例LCC可以包含DRS的一个组件。
对于通过数据库技术(数据库文件系统)而创建的文件系统,逻辑一致性 和物理一致性是不同并且分开的,在这种意义上来说后者(物理一致性)指的 是数据库结构本身以及存储介质上数据库的物理存储,然而前者(逻辑一致性) 指的是由在所述数据库中存储的数据表示的逻辑型数据模式并且表示硬件/软 件接口系统的文件系统。
尽管在某些观点上(如这里以下所讨论的)物理一致性与逻辑一致性是有 关的,本发明的某些实施例主要地涉及确保逻辑一致性。当然,导致物理不一 致性的物理损坏(例如磁盘扇区损坏,所述磁盘扇区包括所述数据库结构的一 部分)同时可能导致逻辑一致性的破坏(例如,对于存储在所述坏的磁盘扇区中 的所述数据库中的实体的数据丢失),然而并非所有逻辑损害一定表示物理损坏 (例如由一个软件错误引起的逻辑错误违反了数据模型规则)。因此,逻辑不一 致性可以分成两种类型(i)由于物理损坏的逻辑不一致性,以及(ii)由于至少一个数据模型规则的破坏而引起的逻辑不一致性(例如,所有实体属性值必须 在一个规则特定范围之内,一个实体必须具有所有的组成的部分,以及项目必须 具有至少一个保留的关系等等)。
一般说来,"修复" 一个逻辑错误本质上次于"恢复"其中有错误发生的数 据,因为数据的备份可能是一个破坏或丢失的数据的很好的复制(或可用于重新 产生一个很好的复制)。因此,恢复技术优于修复技术。
对于本发明的若干实施例,可以使用附图3所示的方法来确定页面上任何
实体是否存在逻辑损坏。对于这种方法,步骤302 LCC检查数据库表存在于 DBFS的实体的参照完整性("实体外部")然后,在步骤304 LCC检查每个实体 的结构完整性(该"实体内部",例如约束条件与关系)以确保不违背数据模型 规则。(对于某些实施例,LCC检査该数据库中的每个实体。)在步骤306,对于 某些实施例LCC可以同时检查周期数(例如,其中实体A具有对实体B的一个 占有关系以及实体B具有对实体A的一个占有关系)。在完成上述检查以后, 在步骤308 LCC然后解决识别的逻辑不一致性。
对于本发明的若干实施例,LCC使用如附图4示出的三股方法解决逻辑错 误。首先,在步骤402, LCC试图使用页面以及事务记录的最近快照(snapshot) 执行一个页面级别恢复(PLR),以完美地修复具有错误的页面。然而,如果 PLR在步骤404不可能或不能改正错误,LCC然后在步骤406试图通过首先确 定该具体的损害的实体进行实体级别恢复(ELR),然后修复那些来自另一个 原因的实体(例如备份或同步的复制品)。如果在步骤408 PLR以及ELR都 不可能或不能校正错误,那么在步骤410LCC将会用一个伪实体(DE)替换存 储器中损害的实体,以便保证如以下论述的文件系统存储器的一致性视图。
通过用DE替换损坏的实体,LCC保证所述损坏实体的消除不破坏所述损 坏实体的子实体,就是说LCC防止了从损坏实体到它的从属的向下级别损坏。 为了达到这个,DE主要替换损坏的实体但是尽可能保持来自损坏实体的尽可 能多的信息。如果损坏实体是一个项目,例如替换DE将会保持同样多的属性 数据,以及其它项目的所有关系。另一方面,如果损坏实体是一个关系,替换 DE将会继续连接它一起从属的项目。同时该损坏实体移到(对于项目)或注册在(对于关系) 一个坏的项目文件夹(BIF)。当该损坏实体是一个项目,该 BIF将会和该损坏实体具有一种关系(例如一个保持关系)。
附图5A和5B是用于说明关于本发明某些实施例的项目的替换方法的方 框图。在附图5A中,其示出一组项目与关系,Il是一个父项目,12是一个经过 关系R12的II的子项目,13是一个经过关系123的12的子项目,而14和15分 别是经过关系R34以及R35的13的子项目。在这个实施例中,项目I2例如 被一个错误的应用程序所破坏,结果项目12现在违反数据模型规则。在附图 5B,识别出12为破坏项目的LCC首先创建DE 12 ',并且在DE 12 '和它的父II 间建立第一关系R12 '以及在DE 12 '和它的子13间建立第二关系R23 '。对于 某些实施例,DE给出和损坏项目相同的项目识别号(ItemID)。损坏项目12 然后移到BIF中以及具有BIF项目和损坏项目12间的保持关系Rh。
对于某些实施例,新的关系R12 '以及R23 '事实上可以是原始关系R12以及 R23,其更新为与I2'代替I2有关。对于其它实施例,R12'以及R23'可以完全 是新的关系并且,对于某些这种实施例,R12和R23可以保持为具有在BIF中损 坏项目12的悬摆关系(dangling relationships)。无论如何,DE有效地为数据集 保存父/子结构并且从而防止12的错误级联I3、 14和15中的错误,否则其不能 从I1得到。
附图6A和6B是用于说明对于本发明某些实施例的关系的替换方法的方 框图。在附图6A中,其说明部分组的项目与关系,I1是一个父项目,而I2是经 过关系R12的I1的一个子项目。在这个实施例中,关系R12例如通过病毒破 坏,结果导致关系R12具有一属性值,例如一安全属性值,超出数据模型中一些预 先决定的允许范围。在附图6B中,将R12识别为破坏关系的LCC首先创建12 和它的父Il间的DE R12 ',并且淘汰破坏的关系R12 (由于关系不能单独存在 该BIF中而不移到该BIF中),而拥有关系R12的项目II存入该BIF中(BIF 为此目的而具有专门的日志且在这里示出,例如作为日志项目)。
对于同步,而为了避免从伙伴到伙伴的错误地同步的破坏实体的可能性 (从而扩展该损坏),本发明的某些实施例通过利用特定的"非授权"标记来标 记(例如,一个单独的位)DE从而划分识别的和/或破坏的损坏,其有效地通知具有这个实体很好的复制的任何同步的复制品以改写这个实体(在这一点上非 授权位被清除)。同样,如果DE随后被修改(例如通过一个最终用户),某些
实施例也将会将DE标记为"非授权而且修改"以保证在修改的DE和复制品 上原始项目的很好的复制间使用冲突解决方法,并且该非授权并且修改标记在 冲突已经解决时移除。 附加的功能
如这里描述的,项目扩展认为是自己项目的部分,并且因此任何扩展损坏 都被认为项目损坏。然而,在某些备选方案实施例中,扩展可以当做和他们自 己的项目是不同的并且分开的。
对于本发明的某些实施例,LCC在实体上运行,其遵循所执行的恢复操 作以校正物理损坏。
对于某些实施例,在试图校正破坏的关系之前LCC首先试图修复破坏的 项目以避免"假想的"损坏的检测,如果在依赖于校正的关系之前项目没有被 校正,则该"假想的"损坏便可能产生。
对于某些实施例,如果一个BIF并不已存在于该DBFS中,则BIF是由 LCC创建的文件夹项目。这个文件夹可以保留DBFS中任何类型的项目(然 而对于某些实施例并非关系),并且该文件夹位于远离默认数据库存储器的根 目录(为了易于访问和定位)。
对于某些实施例,没有备用文件的任何项目将被插入该BIF中,同时无 对应项目的任何文件也将会处于该BIF中。
对于某些实施例,当损坏项目移到该BIF,该BIF可以同时存储关于损坏 项目为什么被移到该BIF的信息。
结论
这里描述的各种系统、方法和技术可以以硬件或软件或适当的两者的结合 来实施。因此,本发明的方法和装置,或某些方面或其中的部分可以采取体现 在在有形的媒体里的程序代码(即指令)的形式,例如软磁盘、CD-ROM、硬盘 或任何其它机器可读的存储介质,其中,当程序代码载入并且由机器执行时,例如 计算机,该机器成为一个用于实践本发明的装置。在程序代码运行在可编程计算机上的情况下,计算机将一般包括处理器、由处理器可读取的存储介质(包括 易失的和非易失性存储器和/或存储元件)、至少一个输入装置以及至少一个输 出装置。最好在一个较高级别的过程的或面向对象编程语言中实施一或多个 程序以和一个计算机系统进行通信。然而,如果需要,程序可以以汇编或机器 语言来实现。在任何情况下,语言可以是编译的或解释的语言,以及结合硬件实 现。
本发明的方法和装置还可以体现在程序代码的形式中,所述程序代码经过 一些传输介质传输,例如通过电线或电缆,通过光纤或经过任何其他的传输的形 式,其中,当接收程序代码并且载入以及由机器执行时,例如一个EPROM、门阵
列、可编程逻辑器件(PLD)、客户端计算机、电视录象机等等,该机器就成为
用于实践本发明的装置。当实施在通用处理机上时,该程序代码结合该处理器, 以提供一种唯一的装置,其用来执行本发明的索引功能。
虽然结合各种附图的优选实施例已经描述了本发明,但是可以理解的是, 在不背离其范围的情况下,可以使用其它相似的实施例,或者可以对描述的实 施例做出修改和添加,以用于执行和本发明相同的功能。例如,虽然本发明的 示例性实施例是在仿真个人计算机功能的数字装置的环境中描述的,但是本领 域的技术人员应该认识到本发明不局限于这种数字装置,如上所述本发明的应 用程序可以适用于许多现有的或者涌现的计算装置或环境,例如一种游戏控制 台、手持式计算机、便携式计算机等等。无论有线或者无线,并且可以应用 于经过通信网络连接并和该网络相互作用的许多这种计算装置。此外,需要强 调的是各种计算机平台,这里想到了包括手持装置操作系统及其他应用程序特 定硬件/软件接口系统,尤其是继续激增的大量无线网络装置。因此,本发明不应 该限于任何单一的实施例,而是根据附加权利要求的宽度和范围来解释。
权利要求
1、一种用于数据库文件系统的自动化数据可靠性系统,所述数据可靠性系统包括一组用于执行数据库管理任务的策略;一种用于在一种页面级别上解决一组物理数据损坏的子系统;以及一种用于在一个实体级别上解决一组逻辑型数据损坏的子系统。
2、 如权利要求l所述的系统,其中所述数据库文件系统是一种基于项目 的硬件/软件接口系统的组件。
3、 如权利要求l所述的系统,进一步包括一个接口,用于从以下功能组 中添加、删除并且修改至少一个功能错误以及事件报告、策略、以及误差/ 事件处理算法。
4、 如权利要求1所述的系统,其中所述数据可靠性系统作为一种后台线 程进行操作。
5、 如权利要求I所述的系统,其中当执行用于在一个页面级别上解决一 组物理数据损坏的所述子系统之后,执行用于一个实体级别上解决一组逻辑型 数据损坏的所述子系统。
6、 如权利要求1所述的系统,其中用于在一个实体级别上解决一组逻辑 型数据损坏的子系统在校正对应于所述破坏项目的破坏关系之前修复一种破 坏项目。
7、 一种用于处理实体级别上逻辑不一致性的一种数据库文件系统的一种 自动化数据可靠性系统的方法,所述方法包括.-使用一组用于执行数据库管理任务的策略; 在一种页面级别上解决一组物理数据损坏;以及 在一个实体级别上解决一组逻辑型数据损坏。
8、 如权利要求7所述的方法,其中所述数据库文件系统是一种基于项目 的硬件/软件接口系统的组件。
9、 如权利要求7所述的方法,进一步包括一个接口,用于从以下功能的 组中添加、删除并且修改至少一个功能错误以及事件报告、策略、以及误差 /事件处理算法。
10、 如权利要求8所述的方法,其中所述数据可靠性系统作为一种后台线 程进行操作。
11、 如权利要求8所述的方法,其中当执行用于在一个页面级别上解决一 组物理数据损坏的所述子系统之后,执行用于一个实体级别上解决一组逻辑型 数据损坏的所述要素。
12、 如权利要求8所述的方法,其中在一个实体级别上解决一组逻辑型数据损坏的要素包括在校正对应于所述破坏项目的破坏关系之前修复一种破坏 的项目。
全文摘要
本发明涉及一种逻辑一致性检验器(LCC),其单独工作或者与一种硬件/软件接口系统的数据库文件系统的一种物理一致性检验器(PCC)和/或一种数据可靠性系统(DRS)结合工作。逻辑型数据校正适合于实体的逻辑型数据损坏(例如,在一个基于项目的操作系统中的项目、扩展和/或关系,其中基于项目的操作系统是基于项目的硬件/软件接口系统的一个实例)。关于这一点,LCC分析并且校正对于典型地保存在数据存储器中的实体的逻辑损害,以便保证所述数据存储器中的所有这些实体都是一致的并且符合数据模型规则。
文档编号G06F7/00GK101430703SQ20081017623
公开日2009年5月13日 申请日期2005年5月8日 优先权日2004年5月3日
发明者A·A·欧克斯, H·R·科达瓦拉, M·J·斯利曼, N·R·艾利斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1