CN1707481B - 用于数据模型中实体的自动维护与修复的系统和方法 - Google Patents
用于数据模型中实体的自动维护与修复的系统和方法 Download PDFInfo
- Publication number
- CN1707481B CN1707481B CN2005100878407A CN200510087840A CN1707481B CN 1707481 B CN1707481 B CN 1707481B CN 2005100878407 A CN2005100878407 A CN 2005100878407A CN 200510087840 A CN200510087840 A CN 200510087840A CN 1707481 B CN1707481 B CN 1707481B
- Authority
- CN
- China
- Prior art keywords
- entity
- logical
- data
- damage
- pseudo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000012423 maintenance Methods 0.000 title description 13
- 230000008439 repair process Effects 0.000 title description 10
- 230000006378 damage Effects 0.000 claims abstract description 64
- 238000012545 processing Methods 0.000 claims description 12
- 238000007689 inspection Methods 0.000 claims description 8
- 238000013499 data model Methods 0.000 abstract description 11
- 238000012937 correction Methods 0.000 abstract description 5
- 230000000596 hypostatic effect Effects 0.000 abstract 2
- 238000011109 contamination Methods 0.000 abstract 1
- 238000011084 recovery Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 102100021468 Equilibrative nucleoside transporter 2 Human genes 0.000 description 1
- 101000822017 Homo sapiens Equilibrative nucleoside transporter 2 Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种逻辑一致性检验器(LCC),其单独工作或者与一种硬件/软件接口系统的数据库文件系统的一种物理一致性检验器(PCC)和/或一种数据可靠性系统(DRS)结合工作。逻辑型数据校正适合于实体的逻辑型数据损坏(例如,在一个基于项目的操作系统中的项目、扩展和/或关系,其中基于项目的操作系统是基于项目的硬件/软件接口系统的一个实例)。 关于这一点,LCC分析并且校正对于典型地保存在数据存储器中的实体的逻辑损害,以便保证所述数据存储器中的所有这些实体都是一致的并且符合数据模型规则。
Description
交叉引用
本申请是2004年5月3日申请的、标题为“用于自动化数据库或文件系统维护与修复的系统和方法”、编号为10/837,932(律师记事表号MSFT-3842)的美国专利申的部分继续。
技术领域
本发明一般涉及文件系统管理,并且尤其涉及确保对于一种数据模型的数据可靠性和一致性的自动化的文件系统维护与修复。本发明的各个方面属于在一种数据实体级别上响应于并且校正逻辑数据误差,而不丢失其它向下级别(子)数据实体。尤其是本发明的各个方面特别属于在一个基于项目(item)的硬件/软件接口系统中逻辑型数据的维护。
背景
虽然客户端数据库平台(即家庭和商业台式计算机)使用一种比服务器平台上质量低得多的硬件,即使服务器类别硬件(控制器、驱动器、磁盘等等)也可以导致“物理”上的数据损坏,以至读出操作不返回数据库应用程序写入数据存储器中的内容。当然,对于各种理由的具有客户端数据库平台(相对于服务器数据库平台)这显然是一个更加丰富问题,所述理由包括但不局限于在写操作当中由于意外的电源断电(其依次导致损害的页面和潜在的数据库损坏)而导致的任意地断电的客户端机器增加的可能性,然而对于服务器数据库系统更加普遍的是利用非中断电源以缓和断电问题。媒体衰退是另一个“物理”数据损坏的来源,其中物理存储器媒体超时就会几乎磨损。然而涉及可靠性的另一个来源是来自“逻辑”损坏的检测和恢复,其由偶然的(例如程序错误)或致命的(例如病毒)的软件错误所引起。
传统地数据库(以及数据库文件系统)的维护与修复已经落到数据库管理者等等具有良好开发技能以及具有数据库系统高深知识者的身上,或者至少落到熟悉并且经常使用数据库系统的个人以及相对熟练数据库技术的许多人身上。另外一个方面,操作系统以及应用程序的普通消费者和业务最终用户很少利用数据库,并且对于数据库维护以及修复问题的处理基本上未受过好的培训。
虽然过去不相干的这两组之间的技能水平大不相同,然而硬件/软件接口系统的数据库实施的文件系统创建了一种方案,其中这些较少经验的最终用户将面对他们基本上不能解决的数据库维护和修复问题。因此一个业务/消费者数据库实施的操作系统文件系统、或简称“数据库文件系统”(DBFS)必须能够检测出损坏并且恢复它的数据库到一种相互影响的一致状态,在不可恢复的数据丢失的情况下,DBFS则必须保证在该级别原子变化单元中的逻辑型数据和维护的数据的一致性(即,在对于一个基于项目DBFS中的“项目”级别)。此外,对于迟钝提交模式(lazy commit mode)下所缺省的DBFSs运行,恰好在不正常的关闭前所提交的事务持久性是不被保证的并且必须被说明和校正。
此外,虽然业务/消费者最终用户将大大地受益于自动化DBFS的维护和恢复,但是数据库管理者以及那些数据库技能大师同样受益于解决一般的数据库维护与修复的方案。在本领域对于数据库管理员来说使用数据库工具(例如SQLServer 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是说明对于本发明某些实施例的涉及关系实体的替换方法的方框图。
详细说明
本主题以满足法定要求的特性加以描述。然而,说明书本身不想限制本专利的范围。更确切的说,发明人已经想到所要求的主题可以以其它的方式来实施,即,通过包括和本文的描述相似的不同的步骤或步骤的组合,或结合其它现有的或者将来的技术。此外,尽管术语“步骤”这里可以用来暗示所使用的方法的不同单元但是该术语不应该被解释为暗示这里公开的各个步骤当中或之间任意的具体的顺序,除非以及除了当明确地描述单个步骤的顺序的时候。
上述概述提供本发明特征的一个概述。本发明一个实施例的详细说明如下。对于如下所述各个实施例,本发明的特征被描述为单独在MICROSOFT SQLSERVER数据库系统(有时相当于这里简写的“SQL”)中实施或结合入下一代个人电脑操作系统(通常称为“Windows Longhorn”或简称“Longhorn”)的MICROSOFT WinFS文件系统。如上所述,SQL SERVER包括MICROSOFT.NET公共语言运行时间(CLR)以允许管理的代码写入并且执行以在SQL SERVER数据库的数据存储器上操作。虽然如下所述实施例在这种环境中操作,可以理解的是本发明并不局限于SQL SERVER产品的实施。相反地本发明可以以支持执行面向对象的编程代码以在数据库存储器上操作的任何数据库系统来实施,诸如面向对象的数据库系统以及具有目标关系扩展的关系数据库系统。因,很清楚本发明不局限于如下所述具体的实施例,而是试图覆盖如附加权利要求定义的本发明的精神以及范围内所有的修改。
计算机环境
本发明的大量实施例可以在一个计算机上执行。附图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所示的方法来确定页面上任何实体是否存在逻辑损坏。对于这种方法,步骤302LCC检查数据库表存在于DBFS的实体的参照完整性(“实体外部”)然后,在步骤304LCC检查每个实体的结构完整性(该“实体内部”,例如约束条件与关系)以确保不违背数据模型规则。(对于某些实施例,LCC检查该数据库中的每个实体。)在步骤306,对于某些实施例LCC可以同时检查周期数(例如,其中实体A具有对实体B的一个占有关系以及实体B具有对实体A的一个占有关系)。在完成上述检查以后,在步骤308LCC然后解决识别的逻辑不一致性。
对于本发明的若干实施例,LCC使用如附图4示出的三股方法解决逻辑错误。首先,在步骤402,LCC试图使用页面以及事务记录的最近快照(snapshot)执行一个页面级别恢复(PLR),以完美地修复具有错误的页面。然而,如果PLR在步骤404不可能或不能改正错误,LCC然后在步骤406试图通过首先确定该具体的损害的实体进行实体级别恢复(ELR),然后修复那些来自另一个原因的实体(例如备份或同步的复制品)。如果在步骤408PLR以及ELR都不可能或不能校正错误,那么在步骤410LCC将会用一个伪实体(DE)替换存储器中损害的实体,以便保证如以下论述的文件系统存储器的一致性视图。
通过用DE替换损坏的实体,LCC保证所述损坏实体的消除不破坏所述损坏实体的子实体,就是说LCC防止了从损坏实体到它的从属的向下级别损坏。为了达到这个,DE主要替换损坏的实体但是尽可能保持来自损坏实体的尽可能多的信息。如果损坏实体是一个项目,例如替换DE将会保持同样多的属性数据,以及其它项目的所有关系。另一方面,如果损坏实体是一个关系,替换DE将会继续连接它一起从属的项目。同时该损坏实体移到(对于项目)或注册在(对于关系)一个坏的项目文件夹(BIF)。当该损坏实体是一个项目,该BIF将会和该损坏实体具有一种关系(例如一个保持关系)。
附图5A和5B是用于说明关于本发明某些实施例的项目的替换方法的方框图。在附图5A中,其示出一组项目与关系,I1是一个父项目,I2是一个经过关系R12的I1的子项目,I3是一个经过关系I23的I2的子项目,而I4和I5分别是经过关系R34以及R35的I3的子项目。在这个实施例中,项目I2例如被一个错误的应用程序所破坏,结果项目I2现在违反数据模型规则。在附图5B,识别出I2为破坏项目的LCC首先创建DE 12′,并且在DE 12′和它的父I1间建立第一关系R12′以及在DE 12′和它的子I3间建立第二关系R23′。对于某些实施例,DE给出和损坏项目相同的项目识别号(ItemID)。损坏项目I2然后移到BIF中以及具有BIF项目和损坏项目I2间的保持关系Rh。
对于某些实施例,新的关系R12′以及R23′事实上可以是原始关系R12以及R23,其更新为与I2′代替I2有关。对于其它实施例,R12′以及R23′可以完全是新的关系并且,对于某些这种实施例,R12和R23可以保持为具有在BIF中损坏项目I2的悬摆关系(dangling relationships)。无论如何,DE有效地为数据集保存父/子结构并且从而防止I2的错误级联I3、I4和I5中的错误,否则其不能从I1得到。
附图6A和6B是用于说明对于本发明某些实施例的关系的替换方法的方框图。在附图6A中,其说明部分组的项目与关系,I1是一个父项目,而I2是经过关系R12的I1的一个子项目。在这个实施例中,关系R12例如通过病毒破坏,结果导致关系R12具有一属性值,例如一安全属性值,超出数据模型中一些预先决定的允许范围。在附图6B中,将R12识别为破坏关系的LCC首先创建I2和它的父I1间的DER12′,并且淘汰破坏的关系R12(由于关系不能单独存在该BIF中而不移到该BIF中),而拥有关系R12的项目I1存入该BIF中(BIF为此目的而具有专门的日志且在这里示出,例如作为日志项目)。
对于同步,而为了避免从伙伴到伙伴的错误地同步的破坏实体的可能性(从而扩展该损坏),本发明的某些实施例通过利用特定的“非授权”标记来标记(例如,一个单独的位)DE从而划分识别的和/或破坏的损坏,其有效地通知具有这个实体很好的复制的任何同步的复制品以改写这个实体(在这一点上非授权位被清除)。同样,如果DE随后被修改(例如通过一个最终用户),某些实施例也将会将DE标记为“非授权而且修改”以保证在修改的DE和复制品上原始项目的很好的复制间使用冲突解决方法,并且该非授权并且修改标记在冲突已经解决时移除。
附加的功能
·如这里描述的,项目扩展认为是自己项目的部分,并且因此任何扩展损坏都被认为项目损坏。然而,在某些备选方案实施例中,扩展可以当做和他们自己的项目是不同的并且分开的。
·对于本发明的某些实施例,LCC在实体上运行,其遵循所执行的恢复操作以校正物理损坏。
·对于某些实施例,在试图校正破坏的关系之前LCC首先试图修复破坏的项目以避免“假想的”损坏的检测,如果在依赖于校正的关系之前项目没有被校正,则该“假想的”损坏便可能产生。
·对于某些实施例,如果一个BIF并不已存在于该DBFS中,则BIF是由LCC创建的文件夹项目。这个文件夹可以保留DBFS中任何类型的项目(然而对于某些实施例并非关系),并且该文件夹位于远离默认数据库存储器的根目录(为了易于访问和定位)。
·对于某些实施例,没有备用文件的任何项目将被插入该BIF中,同时无对应项目的任何文件也将会处于该BIF中。
·对于某些实施例,当损坏项目移到该BIF,该BIF可以同时存储关于损坏项目为什么被移到该BIF的信息。
结论
这里描述的各种系统、方法和技术可以以硬件或软件或适当的两者的结合来实施。因此,本发明的方法和装置,或某些方面或其中的部分可以采取体现在在有形的媒体里的程序代码(即指令)的形式,例如软磁盘、CD-ROM、硬盘或任何其它机器可读的存储介质,其中,当程序代码载入并且由机器执行时,例如计算机该机器成为一个用于实践本发明的装置。在程序代码运行在可编程计算机上的情况下,计算机将一般包括处理器、由处理器可读取的存储介质(包括易失的和非易失性存储器和/或存储元件)、至少一个输入装置以及至少一个输出装置。最好在一个较高级别的过程的或面向对象编程语言中实施一或多个程序以和一个计算机系统进行通信。然而,如果需要,程序可以以汇编或机器语言来实现。在任何情况下,语言可以是编译的或解释的语言,以及结合硬件实现。
本发明的方法和装置还可以体现在程序代码的形式中,所述程序代码经过一些传输介质传输,例如通过电线或电缆,通过光纤或经过任何其他的传输的形式,其中,当接收程序代码并且载入以及由机器执行时,例如一个EPROM、门阵列、可编程逻辑器件(PLD)、客户端计算机、电视录象机等等,该机器就成为用于实践本发明的装置。当实施在通用处理机上时,该程序代码结合该处理器,以提供一种唯一的装置,其用来执行本发明的索引功能。
虽然结合各种附图的优选实施例已经描述了本发明,但是可以理解的是,在不背离其范围的情况下,可以使用其它相似的实施例,或者可以对描述的实施例做出修改和添加,以用于执行和本发明相同的功能。例如,虽然本发明的示例性实施例是在仿真个人计算机功能的数字装置的环境中描述的,但是本领域的技术人员应该认识到本发明不局限于这种数字装置,如上所述本发明的应用程序可以适用于许多现有的或者涌现的计算装置或环境,例如一种游戏控制台、手持式计算机、便携式计算机等等。无论有线或者无线,并且可以应用于经过通信网络连接并和该网络相互作用的许多这种计算装置。此外,需要强调的是各种计算机平台,这里想到了包括手持装置操作系统及其他应用程序特定硬件/软件接口系统,尤其是继续激增的大量无线网络装置。因此,本发明不应该限于任何单一的实施例,而是根据附加权利要求的宽度和范围来解释。
Claims (13)
1.一种用于数据库文件系统的逻辑一致性检验器,所述逻辑一致性检验器包括:
用于检验数据库中对应于所述数据库文件系统的一组表格的参照完整性的至少一个逻辑不一致性的装置;以及
用于在检验所述参照完整性之后检验存在于所述数据库文件系统中的一组实体的结构完整性的至少一个逻辑不一致性的装置。
2.权利要求1的逻辑一致性检验器,进一步包括用于在检验所述结构完整性之后解决至少一个逻辑不一致性的装置。
3.权利要求2的逻辑一致性检验器,其中所述用于解决至少一个逻辑不一致性的装置从以下解决办法的组中执行至少一个解决办法:页面级别恢复、实体级别恢复以及用伪实体替换损坏实体。
4.权利要求3的逻辑一致性检验器,其中所述用于解决至少一个逻辑不一致性的装置首先执行进行页面级别恢复以及,如果没有成功,然后执行进行实体级别恢复以及,如果没有成功,然后用一种伪实体替换对应于所述至少一个逻辑不一致性的至少一个损坏实体。
5.权利要求3的逻辑一致性检验器,其中如果所述实体是一个项目,所述用一种伪实体替换损坏实体的解决办法包括:
创建所述伪实体并且用所述伪实体重定向属于所述损坏实体的至少一个关系;以及
将所述损坏实体移到一个坏的项目文件夹。
6.权利要求3的逻辑一致性检验器,其中如果所述实体是一种关系,所述用一种伪实体替换损坏实体的解决办法包括:
创建所述伪实体作为对应于损坏项目关系的关系;并且
将所述损坏实体存入一个坏的项目文件夹。
7.一种用于数据库文件系统的逻辑一致性检验器中、用于处理实体级别上逻辑不一致性的方法,所述方法包括:
检验数据库中对应于所述数据库文件系统的一组表格的参照完整性的至少一个逻辑不一致性;以及
在检验所述参照完整性之后检查检验存在于所述数据库文件系统中的一组实体的结构完整性的至少一个逻辑不一致性。
8.权利要求7的方法,进一步包括在检验所述结构完整性之后,解决至少一个逻辑不一致性。
9.权利要求8的方法,其中所述解决至少一个逻辑不一致性的要素包括从以下解决办法的组中执行一个解决办法:页面级别恢复、实体级别恢复以及用伪实体替换损坏实体。
10.权利要求9的方法,其中所述解决至少一个逻辑不一致性的要素包括:
执行页面级别恢复;
如果所述试图页面级别恢复没有成功,则执行实体级别恢复;以及
如果所述执行实体级别恢复没有成功,则用一种伪实体替换对应于所述至少一个逻辑不一致性的至少一个损坏的实体。
11.权利要求9的方法,其中如果所述实体是一个项目,所述用一种伪实体替换损坏实体的解决办法进一步包括:
创建所述伪实体并且用所述伪实体重定向属于所述损坏实体的至少一个关系;以及
将所述损坏实体移动到一个坏的项目文件夹。
12.权利要求9的方法,其中如果所述损坏实体是一种关系,所述用一种伪实体替换损坏实体的解决办法包括:
创建所述伪实体作为对应于损坏项目关系的关系;并且
将所述损坏实体存入一个坏的项目文件夹。
13.一种用于数据库文件系统的自动化数据可靠性系统中、用于处理实体级别上逻辑不一致性的硬件控制装置,所述装置包括:
用于利用一组用于执行数据库管理任务的策略的装置;
用于在一个页面级别上解决一组物理数据损坏的装置;以及
用于在一个实体级别上解决一组逻辑型数据损坏的装置,所述用于在一个实体级别上解决一组逻辑型数据损坏的装置还包括:
用于检验数据库中对应于所述数据库文件系统的一组表格的参照完整性的至少一个逻辑不一致性的装置;以及
用于在检验所述参照完整性之后检验存在于所述数据库文件系统中的一组实体的结构完整性的至少一个逻辑不一致性的装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/837,932 | 2004-05-03 | ||
US10/837,932 US7143120B2 (en) | 2004-05-03 | 2004-05-03 | Systems and methods for automated maintenance and repair of database and file systems |
US10/903,187 | 2004-07-30 | ||
US10/903,187 US7366740B2 (en) | 2004-05-03 | 2004-07-30 | Systems and methods for automatic maintenance and repair of enitites in a data model |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101762346A Division CN101430703B (zh) | 2004-05-03 | 2005-05-08 | 用于数据模型中实体的自动维护与修复的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1707481A CN1707481A (zh) | 2005-12-14 |
CN1707481B true CN1707481B (zh) | 2012-05-02 |
Family
ID=35394801
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101521325A Expired - Fee Related CN101604335B (zh) | 2004-05-03 | 2004-07-29 | 用于自动数据库或文件系统维护和修复的系统和方法 |
CNB2004800123735A Expired - Fee Related CN100570599C (zh) | 2004-05-03 | 2004-07-29 | 用于自动数据库或文件系统维护和修复的系统和方法 |
CN2008101762346A Expired - Fee Related CN101430703B (zh) | 2004-05-03 | 2005-05-08 | 用于数据模型中实体的自动维护与修复的系统和方法 |
CN2005100878407A Expired - Fee Related CN1707481B (zh) | 2004-05-03 | 2005-05-08 | 用于数据模型中实体的自动维护与修复的系统和方法 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101521325A Expired - Fee Related CN101604335B (zh) | 2004-05-03 | 2004-07-29 | 用于自动数据库或文件系统维护和修复的系统和方法 |
CNB2004800123735A Expired - Fee Related CN100570599C (zh) | 2004-05-03 | 2004-07-29 | 用于自动数据库或文件系统维护和修复的系统和方法 |
CN2008101762346A Expired - Fee Related CN101430703B (zh) | 2004-05-03 | 2005-05-08 | 用于数据模型中实体的自动维护与修复的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7143120B2 (zh) |
EP (1) | EP1629407B1 (zh) |
JP (1) | JP4638908B2 (zh) |
KR (1) | KR101044849B1 (zh) |
CN (4) | CN101604335B (zh) |
ES (1) | ES2605936T3 (zh) |
WO (1) | WO2005111867A2 (zh) |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US7346751B2 (en) | 2004-04-30 | 2008-03-18 | Commvault Systems, Inc. | Systems and methods for generating a storage-related metric |
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US7366740B2 (en) * | 2004-05-03 | 2008-04-29 | Microsoft Corporation | Systems and methods for automatic maintenance and repair of enitites in a data model |
US7970740B1 (en) * | 2004-09-23 | 2011-06-28 | Oracle America, Inc. | Automated service configuration snapshots and fallback |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US20060136508A1 (en) * | 2004-12-16 | 2006-06-22 | Sam Idicula | Techniques for providing locks for file operations in a database management system |
US7627574B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Infrastructure for performing file operations by a database server |
US7548918B2 (en) * | 2004-12-16 | 2009-06-16 | Oracle International Corporation | Techniques for maintaining consistency for different requestors of files in a database management system |
US7716260B2 (en) * | 2004-12-16 | 2010-05-11 | Oracle International Corporation | Techniques for transaction semantics for a database server performing file operations |
US20060184528A1 (en) * | 2005-02-14 | 2006-08-17 | International Business Machines Corporation | Distributed database with device-served leases |
US9286346B2 (en) * | 2005-02-18 | 2016-03-15 | International Business Machines Corporation | Replication-only triggers |
US8214353B2 (en) * | 2005-02-18 | 2012-07-03 | International Business Machines Corporation | Support for schema evolution in a multi-node peer-to-peer replication environment |
US8037056B2 (en) | 2005-02-18 | 2011-10-11 | International Business Machines Corporation | Online repair of a replicated table |
US7376675B2 (en) * | 2005-02-18 | 2008-05-20 | International Business Machines Corporation | Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events |
US7676845B2 (en) * | 2005-03-24 | 2010-03-09 | Microsoft Corporation | System and method of selectively scanning a file on a computing device for malware |
US8145686B2 (en) * | 2005-05-06 | 2012-03-27 | Microsoft Corporation | Maintenance of link level consistency between database and file system |
US7493347B2 (en) * | 2005-06-02 | 2009-02-17 | International Business Machines Corporation | Method for condensing reported checkpoint log data |
US7809675B2 (en) * | 2005-06-29 | 2010-10-05 | Oracle International Corporation | Sharing state information among a plurality of file operation servers |
US7552147B2 (en) * | 2005-09-02 | 2009-06-23 | International Business Machines Corporation | System and method for minimizing data outage time and data loss while handling errors detected during recovery |
US7475277B1 (en) * | 2005-11-10 | 2009-01-06 | Storage Technology Corporation | Automated repair of damaged objects |
US7610304B2 (en) * | 2005-12-05 | 2009-10-27 | Oracle International Corporation | Techniques for performing file operations involving a link at a database management system |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US20110010518A1 (en) | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
US20080059469A1 (en) * | 2006-08-31 | 2008-03-06 | International Business Machines Corporation | Replication Token Based Synchronization |
CN100430902C (zh) * | 2006-12-13 | 2008-11-05 | 天津理工大学 | 一种支持边服务边恢复的分布式实时数据库故障恢复方法 |
US7921267B1 (en) * | 2006-12-20 | 2011-04-05 | Network Appliance, Inc. | Method and system for fixing a mirror of a dataset |
US20080249988A1 (en) * | 2007-04-06 | 2008-10-09 | International Business Machines Corporation | Computer programming method and system for performing a reversal of selected structured query language operations within a database transaction |
US20080298276A1 (en) * | 2007-05-31 | 2008-12-04 | Microsoft Corporation | Analytical Framework for Multinode Storage Reliability Analysis |
US8001075B2 (en) * | 2007-06-01 | 2011-08-16 | Microsoft Corporation | Log file amnesia detection |
EP2174222A4 (en) * | 2007-07-26 | 2010-10-27 | Ab Initio Technology Llc | TRANSACTIONAL GRAPH-BASED CALCULATION WITH ERROR HANDLING |
BRPI0815619A2 (pt) * | 2007-08-21 | 2015-02-18 | Thomson Licensing | Método e sistema para o reparo de sistemas de arquivos danificados do disco rígido |
US8244671B2 (en) * | 2007-10-11 | 2012-08-14 | Microsoft Corporation | Replica placement and repair strategies in multinode storage systems |
US8074103B2 (en) | 2007-10-19 | 2011-12-06 | Oracle International Corporation | Data corruption diagnostic engine |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
US8176017B2 (en) * | 2007-12-14 | 2012-05-08 | Microsoft Corporation | Live volume access |
US8108356B2 (en) * | 2007-12-24 | 2012-01-31 | Korea Advanced Institute Of Science And Technology | Method for recovering data in a storage system |
US7805412B1 (en) * | 2008-01-11 | 2010-09-28 | Panasas, Inc. | Systems and methods for parallel reconstruction of files and objects |
US8892831B2 (en) * | 2008-01-16 | 2014-11-18 | Apple Inc. | Memory subsystem hibernation |
US20090198952A1 (en) * | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
US8380679B2 (en) * | 2008-02-11 | 2013-02-19 | Infosys Technologies Limited | Method of handling transaction in a service oriented architecture environment |
US20090307409A1 (en) * | 2008-06-06 | 2009-12-10 | Apple Inc. | Device memory management |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
KR100926098B1 (ko) * | 2008-11-18 | 2009-11-11 | 주식회사 네오플 | 스냅샷 데이터베이스를 이용한 정보 복구 방법 및 장치 |
US8521776B2 (en) * | 2008-12-05 | 2013-08-27 | International Business Machines Corporation | Accessing data in a multi-generation database |
US8468293B2 (en) * | 2009-07-24 | 2013-06-18 | Apple Inc. | Restore index page |
US8516219B2 (en) * | 2009-07-24 | 2013-08-20 | Apple Inc. | Index cache tree |
JP2011060217A (ja) * | 2009-09-14 | 2011-03-24 | Toshiba Corp | データ蓄積装置及びデータ書込み/読出し方法 |
US8326902B2 (en) * | 2009-10-07 | 2012-12-04 | Oracle International Corporation | Online database modeling |
US8621267B2 (en) | 2010-12-15 | 2013-12-31 | Microsoft Corporation | Extended page patching |
US8667323B2 (en) * | 2010-12-17 | 2014-03-04 | Microsoft Corporation | Proactive error scan and isolated error correction |
US8621276B2 (en) | 2010-12-17 | 2013-12-31 | Microsoft Corporation | File system resiliency management |
US20130054533A1 (en) * | 2011-08-24 | 2013-02-28 | Microsoft Corporation | Verifying a data recovery component using a managed interface |
US8527462B1 (en) | 2012-02-09 | 2013-09-03 | Microsoft Corporation | Database point-in-time restore and as-of query |
CN103309768B (zh) * | 2012-03-16 | 2015-03-11 | 腾讯科技(深圳)有限公司 | 系统文件修复方法和装置 |
US10346369B2 (en) | 2012-10-11 | 2019-07-09 | Delphix Corp. | Retrieving point-in-time copies of a source database for creating virtual databases |
US10379988B2 (en) | 2012-12-21 | 2019-08-13 | Commvault Systems, Inc. | Systems and methods for performance monitoring |
WO2014120137A1 (en) | 2013-01-30 | 2014-08-07 | Hewlett-Packard Development Company, L.P. | Recovering pages of a database |
US9292373B2 (en) * | 2013-03-15 | 2016-03-22 | International Business Machines Corporation | Query rewrites for data-intensive applications in presence of run-time errors |
CA2932763C (en) | 2013-12-05 | 2022-07-12 | Ab Initio Technology Llc | Managing interfaces for dataflow graphs composed of sub-graphs |
US9400817B2 (en) * | 2013-12-31 | 2016-07-26 | Sybase, Inc. | In-place index repair |
CN104915336B (zh) * | 2014-03-12 | 2021-03-23 | 腾讯科技(深圳)有限公司 | 文档翻译的方法及装置 |
CN104331463B (zh) * | 2014-10-30 | 2018-07-17 | 深圳市锐明技术股份有限公司 | 一种文件系统多线程实现的方法及装置 |
US10102214B2 (en) * | 2015-01-30 | 2018-10-16 | International Business Machines Corporation | Analyzing and correcting corruption which caused filesystem checker failure so that the filesystem checker will run without error |
US10528530B2 (en) | 2015-04-08 | 2020-01-07 | Microsoft Technology Licensing, Llc | File repair of file stored across multiple data stores |
US10275320B2 (en) | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
US10176036B2 (en) * | 2015-10-29 | 2019-01-08 | Commvault Systems, Inc. | Monitoring, diagnosing, and repairing a management database in a data storage management system |
US11727288B2 (en) | 2016-10-05 | 2023-08-15 | Kyndryl, Inc. | Database-management system with artificially intelligent virtual database administration |
CN106502825B (zh) * | 2016-10-13 | 2020-02-14 | 中国联合网络通信集团有限公司 | 数据处理方法及装置 |
US10909106B2 (en) * | 2016-11-11 | 2021-02-02 | Walmart Apollo, Llc | Systems and methods for creating and maintaining referential integrity of data across multiple server systems |
CN107016296B (zh) * | 2017-01-18 | 2020-05-26 | 阿里巴巴集团控股有限公司 | 一种数据索引构建、数据读取的方法、装置及电子设备 |
CN107402843A (zh) * | 2017-06-19 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 数据库损坏的恢复方法、装置和设备 |
US10936441B2 (en) * | 2017-12-15 | 2021-03-02 | Microsoft Technology Licensing, Llc | Write-ahead style logging in a persistent memory device |
US10831591B2 (en) | 2018-01-11 | 2020-11-10 | Commvault Systems, Inc. | Remedial action based on maintaining process awareness in data storage management |
US11238017B2 (en) | 2018-01-30 | 2022-02-01 | Salesforce.Com, Inc. | Runtime detector for data corruptions |
CN108459925B (zh) * | 2018-02-10 | 2022-05-31 | 深圳市先河系统技术有限公司 | 私有云设备及其数据库的修复方法、具有存储功能的装置 |
US11481376B2 (en) * | 2018-06-19 | 2022-10-25 | Salesforce, Inc. | Platform for handling data corruptions |
US20200192572A1 (en) | 2018-12-14 | 2020-06-18 | Commvault Systems, Inc. | Disk usage growth prediction system |
CN110222035A (zh) * | 2019-06-10 | 2019-09-10 | 天津神舟通用数据技术有限公司 | 一种基于异或校验与日志恢复的数据库页面高效容错方法 |
US10915418B1 (en) | 2019-08-29 | 2021-02-09 | Snowflake Inc. | Automated query retry in a database environment |
US11604761B2 (en) | 2020-01-30 | 2023-03-14 | Rubrik, Inc. | Utilizing a tablespace to export from a foreign database recovery environment |
US11609828B2 (en) | 2020-01-30 | 2023-03-21 | Rubrik, Inc. | Utilizing a tablespace to export to a native database recovery environment |
US11467925B2 (en) | 2020-01-30 | 2022-10-11 | Rubrik, Inc. | Exporting a database to a native database recovery environment |
US11360860B2 (en) | 2020-01-30 | 2022-06-14 | Rubrik, Inc. | Exporting a database from a foreign database recovery environment |
US11934377B2 (en) * | 2021-02-25 | 2024-03-19 | Microsoft Technology Licensing, Llc | Consistency checking for distributed analytical database systems |
CN116662059B (zh) * | 2023-07-24 | 2023-10-24 | 上海爱可生信息技术股份有限公司 | MySQL数据库CPU故障诊断及自愈方法及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734887A (en) * | 1995-09-29 | 1998-03-31 | International Business Machines Corporation | Method and apparatus for logical data access to a physical relational database |
WO2000075786A1 (en) * | 1999-06-03 | 2000-12-14 | Mylex Corporation | System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers |
US6721739B1 (en) * | 2000-12-05 | 2004-04-13 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple pages |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4945474A (en) * | 1988-04-08 | 1990-07-31 | Internatinal Business Machines Corporation | Method for restoring a database after I/O error employing write-ahead logging protocols |
US5900870A (en) * | 1989-06-30 | 1999-05-04 | Massachusetts Institute Of Technology | Object-oriented computer user interface |
US5764877A (en) * | 1991-06-25 | 1998-06-09 | Digital Equipment Corporation | Media recovery with time-split B-trees |
JPH0594353A (ja) * | 1991-10-02 | 1993-04-16 | Hokkaido Nippon Denki Software Kk | データベース管理方式 |
JPH06236351A (ja) * | 1993-02-10 | 1994-08-23 | Hitachi Ltd | オンラインシステムのバックアップリストア装置 |
US6078925A (en) * | 1995-05-01 | 2000-06-20 | International Business Machines Corporation | Computer program product for database relational extenders |
US5754782A (en) * | 1995-12-04 | 1998-05-19 | International Business Machines Corporation | System and method for backing up and restoring groupware documents |
US5806074A (en) * | 1996-03-19 | 1998-09-08 | Oracle Corporation | Configurable conflict resolution in a computer implemented distributed database |
US6112024A (en) * | 1996-10-02 | 2000-08-29 | Sybase, Inc. | Development system providing methods for managing different versions of objects with a meta model |
US5897638A (en) * | 1997-06-16 | 1999-04-27 | Ab Initio Software Corporation | Parallel virtual file system |
US6240414B1 (en) * | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US6108004A (en) * | 1997-10-21 | 2000-08-22 | International Business Machines Corporation | GUI guide for data mining |
US6018746A (en) * | 1997-12-23 | 2000-01-25 | Unisys Corporation | System and method for managing recovery information in a transaction processing system |
US6205527B1 (en) * | 1998-02-24 | 2001-03-20 | Adaptec, Inc. | Intelligent backup and restoring system and method for implementing the same |
US6263342B1 (en) * | 1998-04-01 | 2001-07-17 | International Business Machines Corp. | Federated searching of heterogeneous datastores using a federated datastore object |
US6314433B1 (en) * | 1998-06-12 | 2001-11-06 | Hewlett-Packard Company | Frame-based heroic data recovery |
US6714935B1 (en) * | 1998-09-21 | 2004-03-30 | Microsoft Corporation | Management of non-persistent data in a persistent database |
US6519597B1 (en) * | 1998-10-08 | 2003-02-11 | International Business Machines Corporation | Method and apparatus for indexing structured documents with rich data types |
US6338056B1 (en) * | 1998-12-14 | 2002-01-08 | International Business Machines Corporation | Relational database extender that supports user-defined index types and user-defined search |
US6640278B1 (en) * | 1999-03-25 | 2003-10-28 | Dell Products L.P. | Method for configuration and management of storage resources in a storage network |
US6381605B1 (en) * | 1999-05-29 | 2002-04-30 | Oracle Corporation | Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets |
US6370534B1 (en) * | 1999-06-01 | 2002-04-09 | Pliant Technologies, Inc. | Blocking techniques for data storage |
US6199195B1 (en) * | 1999-07-08 | 2001-03-06 | Science Application International Corporation | Automatically generated objects within extensible object frameworks and links to enterprise resources |
JP5113967B2 (ja) * | 1999-08-05 | 2013-01-09 | オラクル・インターナショナル・コーポレイション | インターネットファイルシステム |
US6370541B1 (en) * | 1999-09-21 | 2002-04-09 | International Business Machines Corporation | Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores |
US6556983B1 (en) * | 2000-01-12 | 2003-04-29 | Microsoft Corporation | Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space |
US6694336B1 (en) * | 2000-01-25 | 2004-02-17 | Fusionone, Inc. | Data transfer and synchronization system |
US6671757B1 (en) * | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
US6633978B1 (en) * | 2000-03-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for restoring computer resources |
US6718361B1 (en) * | 2000-04-07 | 2004-04-06 | Network Appliance Inc. | Method and apparatus for reliable and scalable distribution of data files in distributed networks |
US6820088B1 (en) * | 2000-04-10 | 2004-11-16 | Research In Motion Limited | System and method for synchronizing data records between multiple databases |
US6671699B1 (en) * | 2000-05-20 | 2003-12-30 | Equipe Communications Corporation | Shared database usage in network devices |
US6999956B2 (en) * | 2000-11-16 | 2006-02-14 | Ward Mullins | Dynamic object-driven database manipulation and mapping system |
US6871271B2 (en) * | 2000-12-21 | 2005-03-22 | Emc Corporation | Incrementally restoring a mass storage device to a prior state |
US6877111B2 (en) * | 2001-03-26 | 2005-04-05 | Sun Microsystems, Inc. | Method and apparatus for managing replicated and migration capable session state for a Java platform |
US6697818B2 (en) * | 2001-06-14 | 2004-02-24 | International Business Machines Corporation | Methods and apparatus for constructing and implementing a universal extension module for processing objects in a database |
US6772178B2 (en) * | 2001-07-27 | 2004-08-03 | Sun Microsystems, Inc. | Method and apparatus for managing remote data replication in a distributed computer system |
US6898609B2 (en) * | 2002-05-10 | 2005-05-24 | Douglas W. Kerwin | Database scattering system |
US7065527B2 (en) * | 2002-06-26 | 2006-06-20 | Microsoft Corporation | Systems and methods of optimizing metadata publishing system updates by alternating databases |
US6941310B2 (en) * | 2002-07-17 | 2005-09-06 | Oracle International Corp. | System and method for caching data for a mobile application |
-
2004
- 2004-05-03 US US10/837,932 patent/US7143120B2/en not_active Expired - Fee Related
- 2004-07-29 KR KR1020057012466A patent/KR101044849B1/ko active IP Right Grant
- 2004-07-29 ES ES04779579.4T patent/ES2605936T3/es not_active Expired - Lifetime
- 2004-07-29 CN CN2009101521325A patent/CN101604335B/zh not_active Expired - Fee Related
- 2004-07-29 JP JP2007511346A patent/JP4638908B2/ja not_active Expired - Fee Related
- 2004-07-29 CN CNB2004800123735A patent/CN100570599C/zh not_active Expired - Fee Related
- 2004-07-29 WO PCT/US2004/024565 patent/WO2005111867A2/en not_active Application Discontinuation
- 2004-07-29 EP EP04779579.4A patent/EP1629407B1/en not_active Expired - Lifetime
-
2005
- 2005-05-08 CN CN2008101762346A patent/CN101430703B/zh not_active Expired - Fee Related
- 2005-05-08 CN CN2005100878407A patent/CN1707481B/zh not_active Expired - Fee Related
-
2006
- 2006-11-28 US US11/605,184 patent/US20070073764A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734887A (en) * | 1995-09-29 | 1998-03-31 | International Business Machines Corporation | Method and apparatus for logical data access to a physical relational database |
WO2000075786A1 (en) * | 1999-06-03 | 2000-12-14 | Mylex Corporation | System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers |
US6721739B1 (en) * | 2000-12-05 | 2004-04-13 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple pages |
Also Published As
Publication number | Publication date |
---|---|
EP1629407B1 (en) | 2016-09-14 |
CN1707481A (zh) | 2005-12-14 |
US7143120B2 (en) | 2006-11-28 |
CN1784682A (zh) | 2006-06-07 |
EP1629407A4 (en) | 2008-05-21 |
CN100570599C (zh) | 2009-12-16 |
US20050278394A1 (en) | 2005-12-15 |
JP4638908B2 (ja) | 2011-02-23 |
ES2605936T3 (es) | 2017-03-17 |
CN101604335B (zh) | 2012-07-18 |
JP2007536623A (ja) | 2007-12-13 |
WO2005111867A3 (en) | 2006-01-05 |
EP1629407A2 (en) | 2006-03-01 |
CN101604335A (zh) | 2009-12-16 |
CN101430703A (zh) | 2009-05-13 |
KR20070006542A (ko) | 2007-01-11 |
WO2005111867A2 (en) | 2005-11-24 |
CN101430703B (zh) | 2013-05-01 |
KR101044849B1 (ko) | 2011-06-28 |
US20070073764A1 (en) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1707481B (zh) | 用于数据模型中实体的自动维护与修复的系统和方法 | |
KR101035178B1 (ko) | 데이터 모델에서 엔티티의 자동 유지관리 및 수리를 위한시스템 및 방법 | |
US5479654A (en) | Apparatus and method for reconstructing a file from a difference signature and an original file | |
US7685180B2 (en) | System and article of manufacture for transparent file restore | |
CA2549917C (en) | File system storing transaction records in a storage media | |
US7809777B2 (en) | File system having deferred verification of data integrity | |
US8667029B2 (en) | Optimized startup verification of file system integrity | |
US10585762B2 (en) | Maintaining files in a retained file system | |
US7020805B2 (en) | Efficient mechanisms for detecting phantom write errors | |
US20110321012A1 (en) | Non-Intrusive Measurement of Content Quality Using Dry Runs with Roll-back | |
CN101501653B (zh) | 磁盘的长期备份 | |
US6671777B1 (en) | Data storage system and method for managing critical data in an N-way mirrored storage device using first and second sequence numbers | |
US6678107B1 (en) | System and method for reading and writing N-way mirrored storage devices | |
Bohannon et al. | Detection and recovery techniques for database corruption | |
Bairavasundaram et al. | Characteristics, impact, and tolerance of partial disk failures | |
Caron et al. | Object-oriented stable storage based on mirroring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150430 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150430 Address after: Washington State Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC Address before: Washington State Patentee before: Microsoft Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120502 |