当前位置: 首页 > 专利查询>微软公司专利>正文

用于数据库的事务一致变化的跟踪的方法和系统技术方案

技术编号:2868580 阅读:180 留言:0更新日期:2012-04-11 18:40
一种用于在事务复制期间保持源数据与目的数据一致性的变化跟踪技术。第一功能特性为它是一个事务型数据库复制技术。第二特性是该技术支持一源系统事务状态的递增跟踪。该技术的第三特性是当满足前两个特性时,利用触发来跟踪变化。

【技术实现步骤摘要】

本专利技术一般涉及数据库系统领域。本专利技术尤其涉及数据库系统中的复制。
技术介绍
数据库复制是一个处理过程,通过它存于一个位置上(源位置)的数据表中的数据可以应用在其它位置上(目的位置)。尤其是,它是保持存于表中的目的数据的处理过程,随着时间源表出现变化时,与包含在源表中的源数据同步。事务型数据库是支持被称作事务的工作逻辑单元中的数据变化的数据库。一个事务通过一个被称为提交的机制持续变化。提交前,对于事务型数据库的其他用户而言数据变化是不可见的。相反,通过一个被称为反转的机制,一个事务可以移动正在进行的提交之前将被完成的变化。一个事务型数据库上可见的所有数据表示在那个时间点存在的逻辑提交数据状态。事务中的数据变化可能影响多个表,表组中这些事务的一致性是事务型数据库的一个重要的特征。也就是说,通过事务的使用,有可能调整一个横跨多个数据库表的状态变化,这样在用户看来全部表是同时更新的。数据库应用经常依赖于它们访问的底层数据库表的事务一致性。事务复制是一种复制的形式,其当保留源系统的事务状态时从源到目的地移动该数据变化以致于目的数据总是表示该源数据的明显提交的状态。事务复制确保目的表持续反映该复制源表的事务一致性。这可与非事务复制系统形成对比,该非事务的复制系统将该变化从源移动至目的地并且以一种不保证目的表的状态与来自该源表中数据的一特定事务状态相匹配的方法提交它们。复制的实施需要一个用于使该源表的数据状态和目的表同步的有效算法。以最简形式,每当数据库之间的状态被同步时可以执行事务复制以从源到目的地移动复制数据的全部组。有效的事务复制的执行经常从初始状态的完全同步开始并且跟踪增加的源数据库的数据变化,在后来的同步期间仅将增加的更新数据传送到目的数据库中。用于跟踪数据库复制的数据变化的算法分成两个基本类型基于记录的和基于触发的。基于记录的算法是当源数据库发生变化时通过读取源数据库事务记录跟踪该源数据库的变化。此数据库事务记录包含所有发生在该数据库中的变化以致于它们可以通过该提交时间进行处理过程。用于执行复制变化跟踪的基于该数据库记录读取的算法是有效率的,并且提供一种自然的方法来监控该源数据库的状态变化。基于触发的算法提供一种可替换的技术用于在数据库复制期间跟踪源数据库状态变化。数据库触发是一段可根据数据库内发生的特定事件执行软件代码。商业数据库经常为插入、更新和删除表数据而提供触发事件。用于变化跟踪的复制触发以一种方法进行构造,该方法在每一复制表上的插入、更新或删除会引发执行依次存储有关已发生变化的信息的触发代码。后来使用这一存储信息来确定为使其状态反映源表状态而必须用于目的表的变化。当基于触发的算法没有基于记录的算法有效率时,在变化跟踪中利用触发的技术在整个数据库产品中可以比从数据库记录中提取变化的能力更广泛地使用到。而且,以比记录读取能力更一致的方式在整个数据库产品中实现触发。当横跨多数据库平台提供复制时使用跟踪复制变化的触发可以提供执行中的一致性。为复制变化跟踪而使用触发的一个传统缺点是对于基于触发的解决方案很难维持必要的事务特性来支持事务复制。本专利技术克服现有技术的局限和缺点,描述了一种基于触发的用于在执行一个事务复制解决方案时跟踪变化的方法和系统。专利技术概述本专利技术是针对用于保持在事务复制期间该源数据和目的数据一致性的变化跟踪系统和方法。根据本专利技术的一个功能特性为它是一个事务型数据库复制技术。另一个特性是该技术支持一个源系统事务状态的增量跟踪。该技术进一步特性是满足前述特性时利用触发来跟踪变化。本专利技术另一特点和优点将通过以下参照附图进行的说明性实施例的详细描述变得显而易见。附图简要说明上文的概述,和下列优选实施例的详细说明在结合附图阅读时可以更好理解。为了说明本专利技术,图中显示了本专利技术的示范性结构;然而,本专利技术并不局限于所揭露的这些特定方法和手段。图中附图说明图1是表示一示范性计算环境的方框图,在该环境中可实现本专利技术的一些方面;图2说明图3-5一个示范性处理过程的流程图;图3是根据本专利技术变化检测的一个示范性处理过程的流程图;图4是根据本专利技术把所检测的变化分成一致组的一个示范性处理过程的流程图;图5是根据本专利技术将与一致组有关的变化应用于一目的数据库的一个示范性处理过程的流程图;图6是一个根据本专利技术表明各种示范性按需要使用的表的示意图。优选实施例的详细说明概述本专利技术提供一种有效的基于触发的机制,用于跟踪发生在一个源数据库上的变化并且以一种事务一致的方式将结果的变化声明应用到一组目的表中。为更好地解释随后的实施例,提供以下定义定义与一群数据库表有关的一组变化,相对于那些表而言,如果,对于组中的任何变化,所有其它与那些表有关的变化以及作为特定变化在相同事务中提交的,也在该组中,称为事务一致。变化跟踪触发是一个应用于在将插入、更新或删除操作应用于源表时而激活源表的触发。该触发用于捕获有关为将变化应用于目的表所需的变化的信息。变化跟踪表是一个用于存储当一变化跟踪触发激活时收集的变化数据的摘要描述的表。一致组表是用于将变化跟踪表中的变化分成事务一致的组的表。变化声明是一种数据库修改声明,优选结构化查询语言(SQL),针对一个目的数据库可被执行以将一源数据库的变化应用到目的数据库中。示范性计算环境图1说明一个适当的计算系统环境100的例子,在该计算系统环境中本专利技术可被实现。该计算系统环境100仅是一个适当的计算环境的例子,无意对本专利技术的使用范围或功能性提出任何限制。该计算环境100也不应被解释为具有任何与在该示范性操作环境100中说明的组件中任意一个或组合有关的的从属性或必要条件。本专利技术对于具有许多其它一般目的的或特殊目的的计算系统环境或结构是可操作的。可适用于本专利技术的周知的计算系统、环境和/或结构的例子包括,但不局限于,个人电脑、服务器计算机、手提式或膝上型电脑设备、多处理机系统、基于微处理器的系统、机顶盒、可编程用户电子设备、网络PC、小型计算机、大型计算机,包括任何上述系统或设备的分布式计算环境等。本专利技术可在一般的计算机可执行指令环境,诸如由一个计算机执行的程序模块,中进行描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本专利技术也可在分布式计算环境中实现,在该环境中由通过一通信网络或其它数据传输媒体被连接的远程处理设备来执行任务。在一分布式计算环境中,程序模块及其它数据放置在本地机和远程计算机存储介质中,包括存储器存储设备。参照图1,用于实现本专利技术的示范性系统包括以计算机110的形式表示的一个通用计算设备。计算机110的的组件可包括,但不局限于,一个处理单元120,一个系统存储器130和一将包括系统存储器在内的各种系统组件连接到该处理过程单元120上的系统总线121,。该系统总线121可以是几种总线结构类型中的任何一种,该包括存储器总线或存储控制器、外围总线和使用各种总线体系结构中的任何一种的局部总线。举例来说,并非限定,这种体系结构包括工业标准体系结构(ISA)总线,微通道体系结构(MCA)总线,增强型工业标准体系结构(EISA)总线,视频电子标准协会(VESA)局部总线和外设部件互连(PCT)总线(亦称附加板总线)。计算机110一般包括多种计算机可读介质本文档来自技高网...

【技术保护点】
一种保持在一个目的数据库的表组事务一致的方法,包括:从一个源数据库中捕获多种变化;将该变化至少分为一个一致组;以及将至少一个变化一致组应用于目的数据库。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:SL沃德JM贺林斯沃斯
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1