CN101506766A - 数据库破坏恢复系统和方法 - Google Patents
数据库破坏恢复系统和方法 Download PDFInfo
- Publication number
- CN101506766A CN101506766A CNA2006800153617A CN200680015361A CN101506766A CN 101506766 A CN101506766 A CN 101506766A CN A2006800153617 A CNA2006800153617 A CN A2006800153617A CN 200680015361 A CN200680015361 A CN 200680015361A CN 101506766 A CN101506766 A CN 101506766A
- Authority
- CN
- China
- Prior art keywords
- data
- affairs
- destruction
- data item
- item
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000011084 recovery Methods 0.000 title claims abstract description 42
- 230000006378 damage Effects 0.000 claims description 81
- 238000013500 data storage Methods 0.000 claims description 39
- 238000001514 detection method Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000009795 derivation Methods 0.000 claims description 6
- 239000011800 void material Substances 0.000 claims description 2
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 238000003860 storage Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000000429 assembly Methods 0.000 description 6
- 230000000712 assembly Effects 0.000 description 6
- 238000002955 isolation Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002950 deficient Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000002253 acid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005469 granulation Methods 0.000 description 1
- 230000003179 granulation Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000002407 reforming Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 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/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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
Abstract
本发明关于数据存储破坏恢复。更具体地,本发明涉及用于以防止从数据库中取消提交或移除有效或一致事务的方式来标识破坏数据的系统和方法。这可至少部分地通过将事务读取的数据项的身份记入日志来实现。此外,本发明允许采用多版本(或事务时间)数据库来显著减少因破坏事务及相关联的破坏数据项引起的任何停工时间或数据库不可用。从而,无需安装备份,且仅由原始破坏事务和读取破坏数据的事务进行的更新需要被取消提交或移除。
Description
技术领域
本发明一般涉及数据库管理系统,尤其涉及恢复系统和方法。
背景
事务被假定为具有ACID性质。更具体地,事务应为原子、一致、隔离且持久的。数据库机制实施原子性、隔离性和持久性,即“AID”属性。用户编写的事务代码负责一致性(即“C”),这意味着事务应采用之前的一致状态,并创建新的一致状态来更新它。不幸的是,用户事务可能有缺陷而导致不一致、无效或破坏的状态。
利用数据库系统的一个强有力的理由在于,它们允诺保卫它们所存储的数据的完整性。数据库系统实现事务来提供原子性,其约定是全部执行或全部不执行,从而防止部分事务执行,在部分事务执行中,例如旨在在帐户之间转帐的金额仅被提取(withdrawal)或存入(credit)但不会执行两者。数据库系统实现重做恢复以及强制的日志记录,使得一旦数据库响应接受事务更新的责任,这些更新即被保证被包括在数据库状态中。换言之,更新是持久的。这样的系统也实现隔离性,使得一个事务的作用不会干扰另一事务的作用,从而提供事务按顺序连续执行的假像。然而,这些公知技术不能直接处理数据破坏的问题。
数据可因多种方式而被破坏。可破坏数据的一种方式是,磁盘或者灾难性地或者因丢失比特的软故障而出现故障。这被称为介质故障,对其处理被称为介质恢复。对于数据库系统提供介质恢复存在众多方法。例如,使用镜像或某种形式的RAID(独立磁盘冗余阵列)的复制可提供足以重构破坏或坏数据的冗余度。更传统地,数据库系统生成定期备份,即优化用于高速读写的特殊形式的副本(例如,磁带备份)。由于事务可在备份之间执行和提交,因此介质恢复涉及加载备份(被称为还原)并使用介质恢复日志来实施重做恢复。介质恢复日志是记录自进行备份以来的所有事务更新的特殊日志。介质恢复日志可用于使被还原的备份前进。然而,该过程是费力的且通常导致相当长时间的停止。
尽管如此,介质恢复不直接处理错误事务的问题。错误事务造成的损害尤其有害,因为不仅这些事务写入的数据破坏了,而且由随后读取该数据的所有事务写入的数据同样破坏了。
用于消除因错误事务导致的数据破坏的一种技术基于上述介质恢复技术,其中备份被还原,且利用介质恢复日志使数据库状态前进。然而,如果盲目应用,介质恢复将仅重构破坏的数据。为了防止这种情况的发生,习惯上使介质恢复过程在恢复数据库的当前状态之前暂停。更具体地,直到破坏事务执行之后才允许介质恢复继续。这被称为时间点(point in time)恢复,而它的确移除了破坏事务的作用。
不幸的是,时间点恢复系统就使用成本及它对数据库、其用户以及负责管理数据库的人员的影响而言是冒险的措施。时间点恢复因其引入当使用备份来还原数据库并使用介质恢复日志来使数据库状态前进至刚好在破坏事务之前的所需时间时的长时间停止而成本高昂。从而,这可严重地损害数据库的可用性。而且,在破坏事务之后提交的所有事务被取消提交。在高性能事务应用中,这可导致数百甚至数千事务被取消提交。这些事务随后以某种方式被重新提交以便执行,以限制破坏引起的损害。这是非常艰巨的过程,至少部分是因为重新执行这些事务中的任一个可导致与其原始执行不同的结果。
概述
以下呈现了本发明的简化概述以提供对本发明某些方面的基本理解。该概述不是本发明的详尽概观。它不旨在标识本发明的重要/关键元素或描绘本发明的范围。其唯一目的在于以简化的形式提供本发明的某些概念以作为稍后呈现的更详细描述的序言。
简要描述,本发明涉及用于对抗破坏的系统和方法。根据本发明的一方面,提供了急剧减少或消除破坏之后有效事务的取消提交或移除的系统和方法。更具体地,可标识因缺陷或不正确事务导致的初始破坏数据项。该初始破坏数据项然后可被用来确定派生的破坏数据项,后者因其对初始破坏数据项的依赖而是破坏的。根据本发明的一方面,可维护日志来便于标识派生的破坏项。该日志除标识事务所写或更新的数据项的通常记录以外,还可包括标识事务所读取的数据项的一个或多个记录。然后可在数据存储中将初始和派生或依赖的破坏项标记为无效,以将其与有效数据项区分开。
根据本发明的一方面,所提供的系统和方法允许针对带有无效数据的数据存储进行交互和事务处理。换言之,事务处理可继续而几乎不因生成破坏数据的破坏或缺陷事务中断。
根据本发明的另一方面,可查询无效数据项来允许检查无效数据及对其可能的更改。例如,可采用带有标识无效数据的特别关键字的SQL查询。
根据本发明的另一方面,可生成改正动作并将其应用于数据项及其依赖项以使无效数据再次有效。
根据本发明的又一方面,可结合本发明的其它方面采用多版本或事务时间数据库。事务时间数据库消除了在破坏检测之后对检索和安装备份数据库的需求,从而急剧地增强了数据库系统对付破坏事务及其它方面的能力。
本发明的各方面提供显著减少被取消提交的事务的数目,尤其是在破坏之后发生的有效事务的数目及其它方面的破坏恢复的改进。此外,用于利用事务时间数据库来处理破坏数据的过程导致比当前常规时间点恢复的情况短得多的停止时间。
为了达到前述和相关目的,此处结合以下描述和附图描述了本发明的某些说明性方面。这些方面指示可实现本发明的各种方式,它们均旨在由本发明所覆盖。在结合附图考虑本发明的以下详细描述之后,本发明的其它优点和新颖的特征将是显而易见的。
附图简述
图1是根据本发明的一方面的破坏恢复系统的框图。
图2是根据本发明的一方面的隔绝(quarantine)组件的框图。
图3是根据本发明的一方面的事务日志的框图。
图4a是与示例性破坏恢复系统相关联的数据存储和日志的图示。
图4b是与示例性破坏恢复系统相关联的数据存储和日志的图示。
图5是根据本发明的一方面的破坏恢复系统的框图。
图6是根据本发明的一方面的查询接口系统的框图。
图7是根据本发明的一方面的破坏恢复系统的框图。
图8是根据本发明的一方面的破坏恢复系统的框图。
图9是根据本发明的一方面便于破坏恢复的系统的框图。
图10是根据本发明的一方面的破坏方法的流程图。
图11是根据本发明的一方面用于破坏恢复系统的支持方法的流程图。
图12是根据本发明的一方面与数据存储交互的方法的流程图。
图13是根据本发明的一方面与破坏数据交互的方法的流程图。
图14是示出根据本发明的一方面的合适操作环境的示意性框图。
图15是本发明可与之交互的示例计算环境的示意性框图。
详细描述
现在参考附图描述本发明,在全部附图中,相同的参考标号指的是相同或相应的元素。然而,应该理解,附图及其详细描述不旨在将本发明限制于所公开的具体形式。相反,意图是覆盖落入本发明的精神和范围内的所有修改、等效方式和替换方式。
如本申请中所使用的,术语“组件”和“系统”等指的是计算机相关的实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于,运行在处理器上的进程、处理器、对象、实例、可执行代码、执行的线程、程序和/或计算机。作为说明,运行在计算机上的应用程序和该计算机本身均可以是组件。一个或多个组件可以驻留在进程和/或执行中的线程内,且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。
词语“示例性”此处被用来指用作示例、实例或说明。此处被描述为“示例性”的任何方面和设计不必解释为较其它方面或设计更优选和有利。
而且,本发明可被实现为方法、装置或制品,它们使用标准程序设计和/或工程技术来生产软件、固件、硬件或其任何组合,来控制计算机实现所公开的发明。如此处所用的术语“制品”旨在包含可从任何计算机可读设备、载波或介质访问的计算机程序。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁条…)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)…)、智能卡和闪存设备(例如,卡、棒、键驱动器…)。另外,应该理解,可使用载波来携带计算机可读电子数据,诸如在发送和接收电子邮件或者访问诸如因特网或局域网(LAN)等网络中所使用的那些。当然,本领域的技术人员可以认识到,可对此配置进行多种修改,而不背离本发明的范围或精神。
一开始转向图1,根据本发明的一方面描述了破坏恢复系统100。破坏恢复系统100包括破坏检测组件110、隔绝组件120、事务日志组件130、和数据存储140。数据破坏可以是物理和/或逻辑性的。例如,环境影响可引起更改一个或多个数据项的软错误。除此以外或替换地,可能会执行产生非预期作用的事务。从而,破坏检测组件110可监控事务以及数据存储140。基于所接收的输入,组件110可检测和/或便于检测一个或多个数据项的破坏。关于所检测数据破坏的身份和其它信息可被转发给隔绝组件120。隔绝组件120可接收该初始的破坏数据项,并确定相关的数据项。换言之,隔绝组件120可标识从初始破坏数据派生的附加数据项,例如一事务读取破坏数据并利用这样的数据来生成并存储另一数据项。所存储的数据项因其对破坏项的依赖也被视为破坏的。隔绝组件120可利用事务日志130以便于标识相关破坏数据。事务日志130可以是驻留在计算机可读介质上的数据存储。日志130可包括由每一事务读写的数据项。在标识初始破坏数据项和从其派生的破坏数据项之后,隔绝组件120可将这些破坏数据项与数据存储140上的其余数据隔离。数据存储140是诸如提供数据项的持久存储的数据库的制品或计算机可读介质。根据本发明的一方面,数据存储140可以是如将在以下更详细描述的多版本或事务时间数据库。根据本发明的一方面,破坏数据可经由隔绝组件120将破坏数据标记为无效而与有效数据隔离。例如,隔绝组件120可在数据项头部或其它相关联的元数据中将每一破坏数据项标记为无效。
转向图2,根据本发明的一方面描述了隔绝组件120。隔绝组件120从检测组件110(图1)接收对破坏事务的标识,确定依赖的数据项,并将破坏数据与有效数据隔离。为便于这样的功能,隔绝组件120可包括闭包组件210和无效器组件220。闭包组件210计算受破坏数据影响的事务所写入的所有数据的闭包。基本上,这样的过程涉及计算C(DS),这指示数据存储中破坏的确切数据项或其版本。这可按照初始破坏数据项或数据版本以及由读取破坏数据的一个或多个事务写入的项或数据版本来表示。更具体地,这可被表示为C(Tc)=W(Tc),其中Tc是现在破坏的事务,而W(Tc)表示由Tc写入的确切数据项。该计算可经由如以下所述的事务日志来简化。而且,闭包组件210可考虑由已知破坏的事务写入然后由另一事务重写的数据项。该值最初是破坏的,但当其由非已知为破坏的事务重写时再次变为有效。一旦闭包组件210确定包括初始破坏项及从中派生的项目在内的所有破坏数据项之后,这样的信息可被发送给无效器组件220。无效器组件220随后可通过将破坏数据项标记为无效使其与其它项隔绝。例如,头部信息或与数据项相关联的元数据可被标记以指示该数据项或其版本无效。这样的数据项因此对常规事务而言是不可见的。从而,数据存储140(图1)不必被关闭、加载备份、并前进至刚好在破坏之前的时刻。而且,完全有效的事务不必被取消提交并随后重新提交以便执行。此处,仅破坏的事务及相关联的数据项被取消提交。此外,数据存储不必被长期关闭并使事务处理不可用。
图3示出了根据本发明的一方面的事务日志130。事务日志130是包括关于事务和数据项和/或版本的信息的存储。日志130可被存储在数据库或任何其它计算机可读介质或制品上。如图3中所例示,事务日志130可包括一个或多个事务条目310,它包括读记录320和/或写记录330。每个提交的事务可被记录在日志130中。具体地,由事务读取的所有数据项或版本均被记录在读记录320中。此外,由事务写入或更新的所有数据项或版本均在写或更新记录330中表示。
“ACID”事务中的“C”代表一致性,它是事务代码的责任。当事务完整执行时,它固有地约定从一个一致的数据存储状态转移到另一状态。因此,如果事务是错误的并破坏了数据存储的状态,则该事务的整体作用必然表现为破坏。从而,事务或者破坏数据存储或者不破坏。
由于事务在整体上或者是破坏或者是一致的,包括其读写的事务的活动可被作为整体对待。因此,不必记录和/或记住在事务内何时进行了读取。读取任何破坏数据的事务将产生破坏更新,即使破坏数据是在更新进行之后读取的。试图区分在读取破坏之前进行的更新与在这样的读取之后进行的更新根本不可能产生一致的结果。从而,记住事务读取相对于事务更新何时进行是不重要的。这允许将关于事务的所有读取信息合并到刚好可在事务提交之前写入的单个日志记录。如果日志记录太大而难以容易地管理,则日志记录可被分成多个记录。或者,可利用单个读日志记录。
应注意到,不是所有的读取均需被记录在日志130中。在使用生理日志操作的恢复方法中,这些操作将改变的数据归档,但在所有的情况中均假定改变的数据在被写之前被读取。因此,不必在读取日志记录中包括对更新的数据的读取。仅需要包括未由事务更新的数据的读取。对更新数据的读取已经经由其更新或写日志记录被记入日志。
回到图1,根据本发明的一方面,数据存储组件140可以是事务时间和多版本数据库。事务时间数据库存储数据库的所有之前状态并使之可访问。每一事务执行均产生一新的数据库状态。因此,要保存大量状态。然而,由于事务一般仅改变数据库状态中非常小的一部分,大多数数据可在众多状态之间共享。基本上,每一数据库更新产生正被改变的数据的新版本。每一这样的版本可随后用该事务的时间加上时戳。对这种数据库的一种查询是要求数据库正值某个所选时间的状态的“正值(as of)”查询。通过定位具有该(as is)时间前最近时戳的数据来答复该查询。有可能为该数据构造一个基于时间的索引,该索引将查询引导至构成数据库状态正值所请求的时间的状态的确切数据。
因为事务时间数据库包含数据库的所有之前的状态,所以它可提供备份的功能。换言之,它提供数据库的之前状态,如常规所做可利用介质恢复日志从该状态起使状态前进以便重构当前的数据库状态。然而,该“备份”无需还原过程,因为过去的状态总是在线。因此,立即避免了长时间地停止可用性。该方法的附加优点在于可利用诸如“正值”查询和其中要求某个时间段上数据库中某些记录的历史的时间行进查询等各种时间查询来查询“备份”。
应该清楚,与常规备份一样,也可使用事务时间数据库备份来提供“时间点”恢复,从而极大地减少由于数据破坏而导致的停止持续时间。这可通过移除在破坏发生之后引入的所有数据版本来完成。然而,它本身就减少取消提交事务的数目而言没有任何作用。
此处描述的本发明的各方面提供了用于通过将事务读取记入日志等来减少取消提交的事务的数目的系统和方法。而且,被破坏的数据项可被移除,或至少使其不为正常查询可见。这些革新以及将事务时间数据库用作备份的结果是从破坏提供恢复的停止时间期限几乎被消除,且取消提交的事务数目被减少到读取被破坏数据的确切数目,这通常是巨大的减少。
如上所述,事务时间数据库存储数据的多个版本,每一版本由一时戳标识。当事务执行时,为其执行向其分配时戳。事务的时戳可与事务的串行化顺序一致。事务的时戳可被存储在事务所写的数据的各个版本中以确切标识其版本何时成为当前版本。W(T)表示由T写入的数据的确切版本,即以事务时戳标出的具体版本。对可串行化的事务,该同一时戳标识了由事务读取的数据的版本,换言之,即由事务时戳表示的当前“正值”时间的版本。
对其它形式的并发控制,所读取数据版本的时间可有所不同。不必在所有情况中均确切标识哪一版本是所读取的版本。例如,在快照隔离中,该时间是事务的起始时间。对其中读取不一定可重复的二度(degree two)事务而言,可能存在用于标识所读取数据版本的若干时戳。在所有情况中,使用R(T)来表示由事务T读取的数据的确切版本。用于表示所读取的数据版本的次数应小心地记录以精确定义R(T)。
回到图2,记得采用闭包组件210来计算由受到破坏数据影响的事务所写入的所有数据的闭包。该过程涉及计算C(DB),它表示数据库中破坏的数据的确切版本。这可借助初始破坏的数据版本和由读取破坏数据的事务所写入的数据版本来表示。以下数学表达式定义了在数据库上执行的示例性闭包计算的各方面:
C(Tc)0=W(Tc),其中Tc是已知破坏的事务。
公式A
C(Tc)i+1=C(Tc)i∪{W(Ti+1)|R(Ti+1)∩C(Tc)i≠φ},其中Ti+1具有时戳TS(Ti+1),且不存在事务Tj使得TS(Ti)<TS(Tj)<TS(Ti+1)且R(Tj)∩C(Tc)i≠φ。
公式B
C(Tc)=C(Tc)j,使得不存在Tj+1,使TS(Tj)<TS(Tj+1)且R(Tj+1)∩C(Tc)j≠φ
公式C
根据本发明的一方面,数据存储140(图1)也可以是常规数据库。应注意到,上述同一计算可用于通过仅移除版本标识来标识常规数据库中潜在破坏的数据。这实质上将数据项的所有破坏版本折叠成当前数据库中存在的数据的单个破坏实例。只要仅考虑的事务是在破坏事务之后执行的事务,该计算也将有效。它可用于避免取消提交未受初始破坏影响的事务。
为便于澄清和理解,将参考图4a和4b讨论破坏的示例。作为示例而非限制,如图4a的示例400a所提供的,假定存在事务时间数据库410,它具有破坏数据以及与之相关联的事务日志420。在该示例中,数据库410包括四个数据项即变量,W、X、Y和Z,以及每一项的多个版本。每一项在时间0具有初始值,即W=10,X=20,Y=30,以及Z=40。事务日志420包括包含所读的数据项和所写数据项的事务列表。第一事务标识在时间1(T1)处,读取了X在时间0的版本(X0),并创建了时间1(T1)处的新版本(X1),使得X的新值为21。在时间2(T2)处,执行读取W的初始值(W0)和Y的初始值(Y0)并写入W的新版本(W2)的事务。日志继续直到时间6(T6)。假定时间T1处的第一事务被确定为破坏的。从而,其写设置(X1)是破坏的,并经由阴影示出。隔绝组件120(图1和2)的闭包组件210(图2)进行的分析可指示,时间3(T3)处的事务3也是破坏的,因为它读取X1并写入新值X3。如以水平带状线所示,这可由无效器组件220(图2)标记为破坏的。此外,时间5(T5)处的事务5读取事务3所写的X3,因此它的写Z5也是破坏的并在此处以带状线标记。最后,时间6(T6)处的事务6读取Z5,并写入W6,从而,W在时间6(T6)处的版本也是破坏的,并以带状线标记。
在数据被破坏的版本被标记为无效之后,系统允许事务处理恢复。这样的执行的效果应如写入无效数据的事务从未执行一样。即,意图是“取消提交”产生无效项的事务,并移除其效果。因此,当读取数据项d的无效版本[I(d)]时,系统忽视该版本,并在时间上向后扫描d的版本,查找有效的前一个版本。这即是所返回的d值。
概念上,d之前未被破坏的版本的时间范围延及包括连续跟随d被破坏版本之后的所有时间的范围。这在图4b中使用以上图4a的示例示出以便澄清。当被破坏的数据被标记时,作用是逻辑上移除这些版本。这意味着,实际上,前进的数据项即变量的值为W=12、X=20、Y=34以及Z=40。以此理解,可利用数据库状态,在原位留下标记为无效的数据版本以便归档该破坏,这将是非常有用的能力。
当更新被执行时,引入并写入每一数据项的新的且有效的版本。该版本可用作为例如在事务提交时分配给事务的时间的起始时间加上时戳。当读取更新事务时,它们可读取未被破坏的前任,从而被更新的是未破坏的前任。
转向图5,示出了根据本发明的一方面的破坏恢复系统500。类似于图1的系统100,系统500可包括破坏检测组件110、隔绝组件120、事务日志130和数据存储140。如前所述,破坏检测组件110可检测和/或便于检测初始破坏事务和/或数据项,并将标识信息传输给隔绝组件120。隔绝组件120接收该信息,并利用其以及来自事务日志130的数据来确定是否存在因其对初始破坏的依赖也被破坏的任何数据项。此外,隔绝组件120随后可通过在数据存储140中将破坏数据标记为无效而将破坏数据与有效数据隔绝。除这些组件以外,恢复系统500可包括查询组件510。查询组件510用于接收和执行关于有效以及无效数据项的查询。允许对破坏数据的显式查询将是非常有用的。例如,这样的数据可被检查,甚至有可能对其更改使其再次有效。可通过使查询组件进行诸如特别指定破坏数据等的SQL查询的查询来读取破坏数据。例如,SQL选择语句可包括特殊的“无效”属性,它指定仅满足其它查询约束的无效数据应被返回,或者为查询的目的,无效数据应如其有效一般被对待。利用查询组件510对数据存储140执行查询当然是有用的,尤其当目的在于理解数据库所进行的所有活动,如审计员或管理员通常需要做的那样。
图6示出了根据本发明的一方面的查询接口系统600。查询接口系统600可以是用户或应用程序与图5的查询执行组件510之间的接口。从而,系统600可对应于应用程序编程接口(API)。接口系统600可包括两个组件,即查询接口组件610和数据存储接口组件620。查询接口组件610用于从用户、应用程序或其它实体处接收查询。此外,应注意和理解,查询接口组件610可接收涉及无效或破坏数据的查询。例如,它可接收特别指定应返回无效数据的SQL查询,或者查询可指定基于有效和无效数据或单独由有效数据生成结果。数据存储接口620从查询接口组件610接收查询,并随后将查询结果提供回查询接口组件610。数据存储接口620可与查询组件或查询执行引擎交互以检索提供回查询接口组件610的结果。
图7示出了根据本发明的一方面的破坏恢复系统700。恢复系统700可包括破坏检测组件110、隔绝组件120、事务日志130、数据存储140、补偿组件710。如关于系统100(图1)和500(图5)所述的,破坏检测组件110可检测初始事务和/或相关联的数据破坏,并将标识破坏的信息提供给隔绝组件120。隔绝组件120在事务日志130中所存储的信息的帮助下可确定因对初始破坏的依赖而派生的附加破坏。此外,隔绝组件120随后可通过标记数据存储140中的无效或破坏数据来隔离破坏与有效的数据。补偿组件710单独或与用户输入结合可提供用于分析所标记的被破坏数据、生成并应用补偿动作以弥补破坏的机制。以此方式,可使无效数据有效。而且,应理解,补偿组件710可利用包括但不限于神经网络、贝叶斯网络、专家或知识系统的智能和/或自适应系统和方法来推断改正的动作。作为示例,银行帐户可因记入了错误的提取而被破坏。这可导致帐户平衡变为负,且在向银行帐户所有者发送的报告中估算了费用。补偿组件710可为该被破坏的项目创建并应用改正动作,包括但不限于,重新执行随后的事务,从而避免帐户负平衡以及对费用的估算的两者,并生成示出该问题已被改正的新报告。
图8示出了根据本发明的一方面的破坏恢复系统800。类似于系统100、500和700,系统800可包括存储数据项的数据存储140、检测初始破坏的破坏检测组件110、以及存储事务信息的日志组件130。此外,系统800可包括隔绝组件120,它从检测组件110和事务日志130接收或检索输入,标识与初始破坏有关的所有被破坏的项,并在数据存储140上将它们标记或隔绝为无效。而且,系统800也包括执行组件810。执行组件810可在数据存储140上执行或处理事务。此外,执行组件810可例如利用一个或多个锁定(例如,经由锁定管理器(未示出))和时戳来实现并发控制系统和方法,以确保遵循被称为可串行性的事务处理的基本性质。执行组件810也可便于在包括一个或多个无效数据项或其版本的数据库上执行事务。根据本发明的一个方面,执行组件810可如写入无效数据的事务从未执行那样地处理事务。使用事务时间数据库,设法在无效数据上执行的事务将在数据之前的有效版本上执行。根据本发明的另一方面,执行组件810可重新执行被取消提交的事务以改正无效数据。因此,一个或多个破坏事务及相关联的数据项无需暂停执行组件810进行的事务处理。
图9示出了根据本发明的一方面便于破坏恢复的系统900。系统900可通过维护事务日志130来为前述恢复系统提供支持机制。系统900可包括事务分析组件910、日志组件920和事务日志130。事务分析组件910可评估事务及其影响的数据项。更具体地,分析组件910可例如在提交时确定,事务读了哪些数据项,事务入了哪些数据项。该信息然后可被提供给日志组件920。日志组件920通信耦合于事务分析组件910,并维护事务日志130。事务日志130可以是数据存储或其它计算机可读介质。日志130可记录事务事件。对每一事务,可存在归档由事务读取的数据项的读日志记录以及归档所写数据项的写或更新日志记录。在从事务分析组件910接收信息之后,日志组件920可将事务信息写入事务日志130。
应理解,某些数据存储应用程序(例如,事务应用程序)将在改变数据库状态的小部分之前进行大得多的广泛读取。这可导致读日志记录的大小变得非常大。此外,在事务执行直到读日志被写入的提交时刻之前期间记住该信息所需的数据结构的大小同样可能非常大。一般难以处理大量资源。每一资源应被明确标识。维护这样的数据结构并不困难,但它可能会对数据存储和数据存储管理器施加压力,这增加了所涉及的成本。
前述问题,即非常大量的资源的问题,不是本发明将读取记入日志所独有的。当事务需要锁定资源以提供事务隔离时,也会发生该问题。从而,本发明可按照类似方式处理这样的问题,即通过引入多粒度资源。本发明可利用如为锁定所使用的用于标识资源的相同或相似的分层结构。使用锁定资源分层结构的一个明显的优点在于,可立即了解资源牵制(containment)如何被定义的,且拥有确定何时资源使用发生冲突或交叉的方式。因此,本发明可确定何时事务读取了破坏数据,甚至何时资源以不同的粒度级别描述。
传统的锁定资源分层结构通常至少包括表、页和记录。当事务利用了过多小粒度资源时,粒度从精细粒度改变成较大粒度。该方案可适于本发明将事务读取的数据项的身份记入日志的技术。可在该过程中采用锁定管理器,锁定管理器可以作为如此处所定义的该术语的组件。例如,当保持读锁定直到事务结束时,所读取的所有数据项均被锁定管理器有效地记住。在提交时,当从这些资源释放读锁定时,本发明可同时在日志中记录这些资源标识符。
有时,读锁定不被保持到事务结束,例如当执行二度事务时。在这种情况中,锁定管理器资源“锁定阻塞”可被留在锁定管理器冲突表中,将锁定模式从“读”(共享)改为“已读”,只要涉及冲突它就如根本不存在锁定一般被对待。这允许这样的事务采用相同策略以便用该事务所读取的所有资源的标识符来填充事务日志。
关于若干组件之间的交互描述了前述系统。此外,为清楚和简明起见,提供并描述了多个系统以强调本发明的一方面。应理解,这样的系统可包括其中指定的那些组件、指定组件中的某些、和/或在其它系统中指定的附加组件。例如,破坏恢复系统可包括查询组件、补偿组件、以及执行组件或其任何组合。此外,应注意到,一个或多个组件可被组合成单个组件以提供聚集的功能,或可被分成若干子组件。组件也可与此处未特定描述但为本领域的技术人员所知的一个或多个其它组件交互。
此外,如本领域的技术人员所理解的,以上公开的系统和以下公开的方法的各个部分可包括基于人工智能或知识的组件、子组件、进程、装置或机制(例如,支持向量机、神经网络、专家系统、贝叶斯置信网络、模糊逻辑、数据融合引擎、分类器...)或由其组成。这样的组件及其它可自动化所执行的某些机制或进程,从而使系统和方法的部分更适应且更高效。例如,可采用基于人工智能的组件来便于检测数据破坏。可利用这样的组件来单独检测数据破坏,或补充例如由管理员进行的对数据破坏的手动标识。除此以外或对此替换,可采用基于人工智能的系统、方法等来便于在检测数据破坏之后生成和/或应用补偿动作。
考虑上述示例性系统,参考图10-13的流程图将更好地理解根据本发明实现的方法。为说明的简明性起见,方法被示为并描述为一连串的块,可以理解和领会,本发明不受块顺序的限制,如根据本发明,某些块可按照不同的顺序出现和/或与此处所示和所述的其它块并发。而且,不是所有示出的块均是实现根据本发明的方法所必需的。
此外,还应理解,后文中以及本说明书全文中公开的方法能够被存储在制品上,以便于将这样的方法传输和传送给计算机。如此处所使用的,术语制品旨在包括可从任何计算机可读设备、载波或介质访问的计算机程序。
转向图10,根据本发明的一方面描述了破坏方法1000。方法1000提供用于对付破坏的过程。在1010处,标识初始破坏的数据项。用户或管理员可手动、利用基于人工智能、知识的系统和方法或其某种组合来自动标识破坏数据项。作为示例,当作出事务是破坏的诸如不正确地向帐户借记的判断之后,数据项可被标识为破坏的。在1020处,确定从初始破坏的数据项派生的数据项。例如,如果事务读取破坏的数据项,并基于该读取写入或更新第二数据项,则第二数据项也因其对初始破坏项的依赖而是破坏的。为便于标识这些派生的破坏项,可查阅事务日志,事务日志为每一事务标识所读取和更新的数据项。在1030处,初始和派生的破坏数据项均可被标记为无效的。例如,数据项头部或元数据可被如此标记。例如,它们可具有或为真或为假的布尔变量“valid(有效)”。如果它为假,则该数据无效。
图11是根据本发明的一方面的破坏恢复系统的支持方法1100。在1110处,接收或标识事务,其中该事务包括对一个或多个数据项的操作。在1120处,将操作记入计算机可读介质中。例如,事务读操作可被记入在标识由事务所读取的数据项的读记录中。类似地,事务的写或更新操作可被记入在特别标识由该事务所写入的数据项的写或更新记录中。该事务日志随后可被用来标识依赖于破坏事务或数据项的各个数据项。
图12示出了根据本发明的一方面与数据存储交互的方法1200。在1210处,接收查询。查询可指定要检索的无效数据。例如,查询可以是带有指示应考虑无效数据的特别关键字的SQL Select(选择)查询。在1220处,根据所指定的查询返回所选无效数据。方法1200因此允许探测无效数据。这对便于检查这样的数据并可能更改它以使其再次有效而极其有用。
图13是示出与破坏数据交互的方法1300的流程图。如上所述,能够标识和最终改正无效数据是非常有用的。方法1300指定一个这样的过程。在1310处,标识破坏数据项。这样的项可例如通过在数据存储中查询标记为无效的数据项来被标识。例如,数据项可根据不正确向帐户借记的破坏事务而被识别为无效。在1320处,可对数据项应用改正动作以改正该项或使其有效化。在以上呈现的示例中,这样的改正动作可以是执行向帐户存入不正确借记的金额的事务。应理解,这是简化的示例,取决于破坏的严重性和范围,本发明可提供复杂得多的改正动作。此外,可采用基于人工智能和知识的系统和方法以及其它自适应系统和方法来自动生成和应用改正动作。
为了提供本发明的各方面的上下文,图14和15以及以下讨论旨在提供对可在其中实现本发明的各个方面的合适的计算环境的简要、一般的描述。尽管在运行在一台或多台计算机上的计算机程序的计算机可执行指令的一般上下文中描述了本发明,但本领域的技术人员可以认识到,本发明也可结合其它程序模块实现。一般而言,程序模块包括例程、程序、组件、数据结构等,它们执行特定任务和/或实现特定抽象数据类型。而且,本领域的技术人员可以理解,本发明的方法可以使用其它计算机系统配置来实现,包括单处理器、多处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备、基于微处理器或可编程消费者电子产品等。本发明的所示方面也可以在分布式计算环境中实现,其中任务由通过通信网络连接的远程处理设备来执行。然而,即使不是本发明的全部方面,也有某些方面可在单机计算机上实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参考图14,用于实现本发明各方面的示例性环境1400包括计算机1412。计算机1412包括处理单元1414、系统存储器1416和系统总线1418。系统总线1418将包括但不限于系统存储器1416的系统组件耦合至处理单元1414。处理单元1414可以是任何各种可用的处理器。也可以使用双微处理器和其它多处理器体系结构作为处理单元1414。
系统总线1418可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用各种可用的总线体系结构中的任一种的局部总线,可用的总线体系结构包括,但不限于,11位总线、工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展的ISA(EISA)、智能驱动器电子接口(IDE)、VESA局部总线(VLB)、外围部件互连(PCI)、通用串行总线(USB)、高级图形接口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)以及小型计算机系统接口(SCSI)。
系统存储器1416包括易失性存储器1420和非易失性存储器1422。基本输入/输出系统(BIOS)包含有助于诸如启动时在计算机1412中元件之间传递信息的基本例程,它通常存储在非易失性存储器1422中。作为说明,而非限制,非易失性存储器1422可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失性存储器1420可以包括用作外部高速缓存的随机存取存储器(RAM)。作为说明,而非限制,RAM以多种形式可用,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)以及直接Rambus RAM(DRRAM)。
计算机1412也包括可移动/不可以移动、易失性/非易失性计算机存储介质。例如,图14例如示出磁盘存储1424。磁盘存储1424包括,但不限于,如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、Ls-100驱动器、闪存卡或记忆棒的设备。另外,磁盘存储1424可以包括独立或与其它存储介质结合的存储介质,包括但不限于,诸如光盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等的光盘驱动器。为了便于将磁盘存储设备1424连接至系统总线1418,一般使用诸如接口1426等可移动或不可移动接口。
可以理解,图14描述了作为用户和在合适的操作环境1410中描述的基本计算机资源之间的中介的软件。这样的软件包括操作系统1428。可被存储在磁盘存储1424上的操作系统1428用来控制和分配计算机系统1412的资源。系统应用程序1430通过存储在系统存储器1416或者磁盘存储1414上的程序模块1432和程序数据1434利用了操作系统1428执行的资源管理。可以理解,本发明可以使用各种操作系统或操作系统的组合来实现。
用户通过输入设备1436向计算机1412输入命令或信息。输入设备1436包括,但不限于,诸如鼠标、跟踪球、指示笔等定点设备、触摸垫、键盘、麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数码摄像机、网络摄像头等。这些和其它输入设备经由接口端口1438通过系统总线1418连接至处理单元1414。接口端口1438包括,例如串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备1440使用某些与输入设备1436相同类型的端口。从而,例如,USB端口可以用于向计算机1412提供输入,并向输出设备1440输出来自计算机1412的信息。提供输出适配器1442来示出,存在如显示器(例如,平板和CRT)、扬声器和打印机以及其它需要专用适配器的输出设备1440的某些输出设备1440。作为说明而非限制,输出适配器1442包括提供输出设备1440和系统总线1418之间的连接手段的显卡和声卡。应该注意,诸如远程计算机1444等其它设备和/或设备系统同时提供输入和输出能力两者。
计算机1412可使用至一台或多台远程计算机,诸如远程计算机1444的逻辑连接在网络化环境中操作。远程计算机1444可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的装置、对等设备或其它常见网络节点等,且通常包括上文相对于计算机1412描述的许多或所有元件。为简明起见,对于远程计算机1444仅示出存储器存储设备1446。远程计算机1444通过网络接口1448被逻辑连接至计算机1412,并且然后通过通信连接1450被物理地连接。网络接口1448包括诸如局域网(LAN)和广域网(WAN)的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网/IEEE802.3、令牌环/IEEE802.5等。WAN技术包括,但不限于,点对点链路、如综合业务数字网(ISDN)及其变型的电路交换网络、分组交换网络和数字用户线(DSL)。
通信连接1450指的是用来将网络接口1448连接至总线1418的硬件/软件。尽管为说明清楚,将通信连接1450示为位于计算机1412内,然而通信连接1450也可以在计算机1412外部。仅为示例的目的,连接至网络接口1448所必需的硬件/软件包括内部和外部技术,诸如包括常规电话级调制解调器、线缆调制解调器和DSL调制解调器等的调制解调器、ISDN适配器以及以太网卡。
图15是本发明可与之交互的示例计算环境1500的示意性框图。系统1500包括一个或多个客户机1510。客户机1510可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1500也包括一个或多个服务器1530。服务器1530也可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,服务器1530可以容纳例如通过使用本发明来执行转换的线程。客户机1510和服务器1530之间的一种可能的通信可以是适于在两个或多个计算机进程之间传输的数据包的形式。系统1500包括可以被用来便于客户机1510和服务器1530之间通信的通信架构1550。客户机1510可操作地连接至可用来存储对客户机1510本地的信息的一个或多个客户机数据存储1560。类似地,服务器1530可操作地连接至可被用来存储对服务器1530本地的信息的一个或多个服务器数据存储1540。
以上描述的包括本发明的示例。当然,不可能为描述本发明而描述每个可想象的组件或方法的组合,但是本领域的普通技术人员可以认识到,本发明的众多其它组合和排列是可能的。从而,本发明旨在包括落入所附权利要求书精神和范围内的所有这样的变更、修改和变型。而且,就在详细描述或权利要求书中使用的术语“包括”、“具有”和“含有”而言,当被用作权利要求书中的过渡词时,这样的术语旨在类似于解释术语“包含”的方式是包含性的。
Claims (20)
1.一种数据存储破坏恢复系统,包括:
破坏检测组件,便于在数据存储中标识初始破坏数据项;以及
隔绝组件,接收所述破坏项,从日志标识依赖数据项,并在所述数据存储中隔绝所述初始破坏数据项和从所述破坏项中派生的数据项。
2.如权利要求1所述的系统,其特征在于,所述隔绝组件包括计算由受到所述破坏数据影响的事务所写入的所有数据的闭包的闭包组件。
3.如权利要求2所述的系统,其特征在于,所述隔绝组件包括将破坏数据项标记为无效的无效器组件。
4.如权利要求3所述的系统,其特征在于,所述无效数据项对事务而言不可见。
5.如权利要求4所述的系统,其特征在于,还包括便于检索和/或查看破坏数据的查询组件。
6.如权利要求3所述的系统,其特征在于,所述无效数据项被从所述数据存储中移除。
7.如权利要求1所述的系统,其特征在于,所述日志为每一事务标识所读取和/或写入的数据项
8.如权利要求7所述的系统,其特征在于,所述由事务读取的数据项被合并到事务在提交之前刚写入的单个日志记录中。
9.如权利要求7所述的系统,其特征在于,数据项是由在锁定管理器中所使用的资源标识符所标识的并以这些标识符记录在所述日志上的多粒度项目,所述隔绝组件标识其中具有读写冲突的事务中的读锁定涉及先前事务中的破坏数据的破坏依赖项,因为这样的事务读取了破坏数据而且随后又写入破坏数据。
10.如权利要求1所述的系统,其特征在于,还包括:
事务分析组件,接收事务并确定所述事务与之交互的数据项;以及
日志组件,从所述分析组件接收关于所述事务与之交互的所述数据项的信息,并将所述信息存储到计算机可读介质。
11.如权利要求10所述的系统,其特征在于,所述日志组件将不与更新操作相关联的读取记入日志,只要更新包括对数据项的读和写两个操作时,即可从更新日志确定自更新操作的读取。
12.一种数据破坏恢复系统,包括:
用于标识初始破坏数据项的装置;
用于标识从所述初始破坏数据项派生的破坏数据项的装置;以及
用于在事务时间数据库中将所述被破坏的数据项版本标识为无效的装置。
13.如权利要求12所述的系统,其特征在于,还包括用于针对具有无效版本的所述数据库处理事务的装置以及用于查询无效数据项版本的装置的至少其中之一。
14.一种计算机实现的数据破坏方法,包括:
标识初始破坏数据项;
标识从所述初始破坏数据项派生的破坏项;以及
在多版本数据存储上将所述破坏数据项标记为无效的。
15.如权利要求14所述的方法,其特征在于,还包括在日志中为事务记录数据项读取和写入。
16.如权利要求15所述的方法,其特征在于,标识派生的破坏数据项包括计算由受所述初始破坏数据影响的事务所写入的所有数据项的闭包。
17.如权利要求14所述的方法,其特征在于,还包括在所述数据存储上查询无效数据。
18.如权利要求14所述的方法,其特征在于,还包括在包括已被无效且被忽视的破坏数据的所述数据存储上执行事务。
19.如权利要求18所述的方法,其特征在于,在无效项版本上执行事务包括采用所述项的之前有效的版本。
20.如权利要求14所述的方法,其特征在于,还包括在所述数据存储上执行补偿所述破坏或无效数据的事务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/125,806 US8386440B2 (en) | 2005-05-10 | 2005-05-10 | Database corruption recovery systems and methods |
US11/125,806 | 2005-05-10 | ||
PCT/US2006/014266 WO2006121577A2 (en) | 2005-05-10 | 2006-04-14 | Database corruption recovery systems and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101506766A true CN101506766A (zh) | 2009-08-12 |
CN101506766B CN101506766B (zh) | 2011-10-05 |
Family
ID=37397047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800153617A Expired - Fee Related CN101506766B (zh) | 2005-05-10 | 2006-04-14 | 数据库破坏恢复系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8386440B2 (zh) |
KR (1) | KR101255391B1 (zh) |
CN (1) | CN101506766B (zh) |
WO (1) | WO2006121577A2 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110121A (zh) * | 2009-12-24 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其系统 |
CN102156720A (zh) * | 2011-03-28 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 一种数据恢复的方法、装置和系统 |
CN103501468A (zh) * | 2013-10-17 | 2014-01-08 | 珠海迈科电子科技有限公司 | 检测网络视频播放地址是否有效的方法及装置 |
CN104937556A (zh) * | 2013-01-30 | 2015-09-23 | 惠普发展公司,有限责任合伙企业 | 恢复数据库的页面 |
CN105144158A (zh) * | 2013-03-28 | 2015-12-09 | 微软技术许可有限责任公司 | 使用拆毁写检测的恢复处理 |
CN107851061A (zh) * | 2015-05-19 | 2018-03-27 | 净睿存储股份有限公司 | 远程存储器中硬件辅助的事务提交 |
CN114005293A (zh) * | 2021-12-30 | 2022-02-01 | 浙江国利网安科技有限公司 | 一种交通信号机的冲突表篡改监测方法及装置 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8005792B2 (en) * | 2004-05-14 | 2011-08-23 | Oracle International Corporation | System and method for managing versions of metadata |
US7698310B2 (en) * | 2004-05-14 | 2010-04-13 | Oracle International Corporation | System for allowing object metadata to be shared between cursors for concurrent read write access |
US7555502B2 (en) * | 2006-03-10 | 2009-06-30 | Oracle International Corporation | Detecting database events using recovery logs |
US20080098037A1 (en) * | 2006-07-17 | 2008-04-24 | Tim Neil | Markup language based database upgrades |
US9336066B2 (en) * | 2008-06-19 | 2016-05-10 | Intel Corporation | Hybrid linear validation algorithm for software transactional memory (STM) systems |
US20100241893A1 (en) * | 2009-03-18 | 2010-09-23 | Eric Friedman | Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment |
US8356007B2 (en) | 2010-10-20 | 2013-01-15 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
US8396831B2 (en) * | 2009-12-18 | 2013-03-12 | Microsoft Corporation | Optimistic serializable snapshot isolation |
US8903779B1 (en) * | 2013-03-06 | 2014-12-02 | Gravic, Inc. | Methods for returning a corrupted database to a known, correct state |
US10037352B1 (en) | 2013-03-18 | 2018-07-31 | The Boston Consulting Group, Inc. | Methods for editing hierarchical data |
US9342351B1 (en) * | 2013-11-01 | 2016-05-17 | Bmc Software, Inc. | Systems and methods for efficient DB2 outage operations |
US10096065B2 (en) | 2015-01-16 | 2018-10-09 | Red Hat, Inc. | Distributed transactions with extended locks |
US10430402B2 (en) | 2015-01-16 | 2019-10-01 | Red Hat, Inc. | Distributed transaction with dynamic form |
US9804935B1 (en) | 2015-01-26 | 2017-10-31 | Intel Corporation | Methods for repairing a corrupted database to a new, correct state by selectively using redo and undo operations |
US9830223B1 (en) * | 2015-01-26 | 2017-11-28 | Intel Corporation | Methods for repairing a corrupted database to a new, correct state |
US10083075B1 (en) * | 2015-04-30 | 2018-09-25 | Amdocs Development Limited | System, method, and computer program for automatic discard of corrupt memory segments |
US10289706B2 (en) | 2015-06-03 | 2019-05-14 | International Business Machines Corporation | Repairing corrupted references |
US10241856B2 (en) * | 2016-09-09 | 2019-03-26 | Oracle International Corporation | Memory quarantine |
US10225078B2 (en) | 2017-02-09 | 2019-03-05 | International Business Machines Corporation | Managing a database management system using a blockchain database |
US10579613B2 (en) * | 2017-08-08 | 2020-03-03 | International Business Machines Corporation | Database recovery using persistent address spaces |
US11182363B2 (en) | 2018-06-29 | 2021-11-23 | International Business Machines Corporation | Data validation in copy repositories |
US10929249B2 (en) | 2018-06-29 | 2021-02-23 | International Business Machines Corporation | Optimized data corruption source and timeline analysis |
US10795780B2 (en) | 2018-06-29 | 2020-10-06 | International Business Machines Corporation | Data breach source and timeline analysis |
US10929248B2 (en) | 2018-06-29 | 2021-02-23 | International Business Machines Corporation | Data corruption source and timeline analysis |
US10691448B2 (en) | 2018-08-18 | 2020-06-23 | Dell Products, L.P. | Method and apparatus to execute BIOS firmware before committing to flash memory |
US10990470B2 (en) | 2018-12-11 | 2021-04-27 | Rovi Guides, Inc. | Entity resolution framework for data matching |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5065311A (en) * | 1987-04-20 | 1991-11-12 | Hitachi, Ltd. | Distributed data base system of composite subsystem type, and method fault recovery for the system |
US5212788A (en) * | 1990-05-22 | 1993-05-18 | Digital Equipment Corporation | System and method for consistent timestamping in distributed computer databases |
US5893117A (en) * | 1990-08-17 | 1999-04-06 | Texas Instruments Incorporated | Time-stamped database transaction and version management system |
DE19525149A1 (de) * | 1995-07-11 | 1997-01-16 | Telefunken Microelectron | Verfahren zum selbsttätigen Erkennen und Korrigieren eines ungültigen Datensatzes und System zu seiner Durchführung |
US6449623B1 (en) * | 1998-09-04 | 2002-09-10 | Lucent Technologies Inc, | Method and apparatus for detecting and recovering from data corruption of a database via read logging |
US7062611B2 (en) | 2002-02-07 | 2006-06-13 | Sun Microsystems, Inc. | Dirty data protection for cache memories |
US20050187872A1 (en) * | 2002-09-06 | 2005-08-25 | Mike Schmidt | Interactive electronic bill payment system |
US7254752B1 (en) * | 2003-03-25 | 2007-08-07 | Emc Corporation | Protecting database records against a failed write operation |
US20050097141A1 (en) * | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Autonomic filesystem recovery |
-
2005
- 2005-05-10 US US11/125,806 patent/US8386440B2/en active Active
-
2006
- 2006-04-14 WO PCT/US2006/014266 patent/WO2006121577A2/en active Application Filing
- 2006-04-14 CN CN2006800153617A patent/CN101506766B/zh not_active Expired - Fee Related
- 2006-04-14 KR KR1020077025111A patent/KR101255391B1/ko active IP Right Grant
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110121B (zh) * | 2009-12-24 | 2015-09-23 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其系统 |
CN102110121A (zh) * | 2009-12-24 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其系统 |
CN102156720A (zh) * | 2011-03-28 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 一种数据恢复的方法、装置和系统 |
CN104937556A (zh) * | 2013-01-30 | 2015-09-23 | 惠普发展公司,有限责任合伙企业 | 恢复数据库的页面 |
US10261869B2 (en) | 2013-03-28 | 2019-04-16 | Microsoft Technology Licensing, Llc | Transaction processing using torn write detection |
CN105144158A (zh) * | 2013-03-28 | 2015-12-09 | 微软技术许可有限责任公司 | 使用拆毁写检测的恢复处理 |
CN105144158B (zh) * | 2013-03-28 | 2019-02-26 | 微软技术许可有限责任公司 | 使用拆毁写检测的恢复处理方法和系统 |
US10664362B2 (en) | 2013-03-28 | 2020-05-26 | Microsoft Technology Licensing, Llc | Recovery processing for database in persistent system |
CN103501468B (zh) * | 2013-10-17 | 2017-01-25 | 珠海迈科智能科技股份有限公司 | 检测网络视频播放地址是否有效的方法及装置 |
CN103501468A (zh) * | 2013-10-17 | 2014-01-08 | 珠海迈科电子科技有限公司 | 检测网络视频播放地址是否有效的方法及装置 |
CN107851061A (zh) * | 2015-05-19 | 2018-03-27 | 净睿存储股份有限公司 | 远程存储器中硬件辅助的事务提交 |
CN107851061B (zh) * | 2015-05-19 | 2021-09-28 | 净睿存储股份有限公司 | 远程存储器中硬件辅助的事务提交 |
CN114005293A (zh) * | 2021-12-30 | 2022-02-01 | 浙江国利网安科技有限公司 | 一种交通信号机的冲突表篡改监测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2006121577A3 (en) | 2009-04-30 |
WO2006121577A2 (en) | 2006-11-16 |
CN101506766B (zh) | 2011-10-05 |
KR101255391B1 (ko) | 2013-04-17 |
US20060259518A1 (en) | 2006-11-16 |
US8386440B2 (en) | 2013-02-26 |
KR20080005387A (ko) | 2008-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101506766B (zh) | 数据库破坏恢复系统和方法 | |
CN100440155C (zh) | 用于创建虚拟数据拷贝的方法和系统 | |
US7801846B2 (en) | Generating log sequence identifiers to apply a transaction to a storage system | |
US6578041B1 (en) | High speed on-line backup when using logical log operations | |
US6446086B1 (en) | System and method for logging transaction records in a computer system | |
US6185699B1 (en) | Method and apparatus providing system availability during DBMS restart recovery | |
CN1716248B (zh) | 并发事务和页面同步 | |
US7383293B2 (en) | Database backup system using data and user-defined routines replicators for maintaining a copy of database on a secondary server | |
US7937368B2 (en) | Method and mechanism for identifying transaction on a row of data | |
EP2951694B1 (en) | Recovering pages of a database | |
US7200620B2 (en) | High availability data replication of smart large objects | |
Eich | A classification and comparison of main memory database recovery techniques | |
US20050015640A1 (en) | System and method for journal recovery for multinode environments | |
CN104793988A (zh) | 跨数据库分布式事务的实现方法和装置 | |
US20110083040A1 (en) | Log-based rollback-recovery | |
US5862318A (en) | System for generating a gapless series of identity values | |
CN101243446A (zh) | 从数据库镜像进行在线页还原 | |
CN1784676B (zh) | 数据库数据恢复系统和方法 | |
US5740434A (en) | System for maintenance of database integrity | |
US6298345B1 (en) | Database journal mechanism and method that supports multiple simultaneous deposits | |
CN102541691B (zh) | 面向内存数据库oltp应用的日志检查点恢复方法 | |
CN115145697B (zh) | 数据库事务的处理方法、装置及电子设备 | |
JP2006004031A (ja) | データ処理方法およびシステム並びにストレージ装置方法およびその処理プログラム | |
US20030208464A1 (en) | System and method for optimizing log usage for temporary objects | |
US6948093B2 (en) | Data processing arrangement and method |
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: 20150505 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150505 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 |
Granted publication date: 20111005 |
|
CF01 | Termination of patent right due to non-payment of annual fee |