表数据比较的方法和系统技术方案

技术编号:13795183 阅读:69 留言:0更新日期:2016-10-06 11:53
公开了一种用于表数据比较的系统和方法,该系统和方法使得表具有高准确性(高置信度),其中一个表是另一个表的拷贝,通过复制同步保持该拷贝。该方法利用具有抽样的、基于统计结果的或者基于物化查询表的方法进行数据库比较。该方法首先识别包括源数据库表的数据的行的子集的块和目标数据库表中的相应块,并且获得与每个块关联的统计结果值。然后,比较相应源块和目标块的统计结果值,并且基于比较结果,确定源数据库与目标数据库的一致性评估。又一种方法使得能够在正在比较识别的块的时候,以考虑到对初始源数据库和目标数据库的实时数据修改的方式,将数据确定为持久性的或者不是持久性的。

【技术实现步骤摘要】

本专利技术涉及数据复制(replication),并且尤其涉及在数据库管理系统中采用的方法和系统,用于将源数据库结构中含有的数据与在目标数据库中复制的对应于源数据库表的数据进行比较,并且识别任何差异。
技术介绍
数据复制是企业通过数据冗余保证连续数据复制的惯常做法。从技术的角度出发,有基于磁盘复制方法和基于中间层软件复制方法。根据复制协议,有同步复制和异步复制。在异步复制中,做了导致数据变化的事务后,复制数据;因此,不影响源站点事务性能。为了证实数据是否100%准确复制,特别是当应用异步复制时,通常使用数据比较应用。对于数据库,进行比较以在每个关键值和每个记录列的记录数量方面保证源中的和(复制)目标的数据项一致(匹配)。当数据库表变得非常大,并且两个数据库在物理上相距远(例如,某个距离)时,这种比较非常昂贵,因为从表提取数据,并且将一个数据库中的行发送到另一个进行比较的成本。为了减少传递的数据量,可以传递一个或者多个记录的校验和,代替记录本身。仅当校验和比较不匹配时,才采用行比较。此外,为了改善性能,能够采用并行比较,并且为了确认有效而比较数据块的校验和。然而,并行比较仅改善比较的历时,而不减少工作量,并且因此,I/O和网络仍紧张并且占用CPU。对于许多客户,非常希望降低进行表差异比较的成本。这样既包含比较成本又包含比较花费的时间。此外,数据量可以极高。在这种情况下,比较必须使得当进行该比较时资源不崩溃。
技术实现思路

存在以某个准确性级别,而非基于逐行检查方式(例如,利
用行数据或者校验和)提供轻量比较的需要。本
还存在提供一种轻量比较,该轻量比较包含即使在正在比较数据时,当在源或者目标更新数据时,仍对活环境的跟踪机制。在该公开中,提供了一种能够以高准确性(高置信度)进行轻量表比较的系统和方法以及计算机程序产品。所公开的轻量表比较的特征从如下方面解决了该问题:1)基于统计结果的;2)基于抽样的;以及3)基于物化查询表(MQT)的,该MQT是其定义基于查询结果的表。根据一个方面,提供了一种表数据比较的方法。该方法包括:识别包括源数据库表的数据的行的子集的块和包括第二数据库表的数据的行的子集的相应块;获得与包含在源表的识别块中的数据关联的统计结果值,并且获得包含在目标表块的相应块中的数据的又一个统计结果值;比较统计结果值,以确定匹配结果;以及基于比较的结果,确定每个源数据库表和目标数据库表的块是否一致,其中编程处理器设备执行识别、获得、比较以及确定操作。根据又一个方面,提供了一种用于表数据比较的系统。该系统包括:存储器,配置该存储器,以存储从源数据库表和目标数据库表收到的数据;处理器,该处理器与存储器通信,配置该处理器以执行方法,从而:识别包括源数据库表的数据的行的子集的块和包括第二数据库表的数据的行的子集的相应块;获得与包含在源表的识别块中的数据关联的统计结果值,并且获得包含在目标表块的相应块中的数据的又一个统计结果值;比较统计结果值,以确定匹配结果;以及基于比较的结果,确定每个源数据库表和目标数据库表的块是否一致。提供了一种执行操作的计算机程序产品。该计算机程序产品包含处理电路可读并且存储该处理电路运行的指令从而运行(各)方法的储存介质。(各)方法与上面所列的相同。附图说明根据下面对其说明性实施例所做的详细描述,本公开的特征和优点显而易见,结合附图阅读该详细描述。附图中:图1是示出根据实施例的通用数据比较架构的原理框图;图2A是示出根据本公开提供的一个实施例的应用的数据流图,配置该应用,以确定数据库环境下的差异;图2B是示出根据本公开提供的一个实施例的表比较应用的应用架构的示意图;图2C是示出根据本公开提供的一个实施例的表比较应用的应用架构的示意图;图2D是示出根据本公开提供的一个实施例的飞行比较应用的应用架构的示意图;图3示出执行在此描述的方法的示例性硬件配置;图4A-4B示出一个实施例中的轻量表比较的通用处理;图5示出一个实施例中为了轻量表比较而从源表数据库和目标表数据库中提取相应块的统计数据的详图;图6示出在一个实施例中为了执行轻量表比较从MQT表提取数据的方法流程的一个实施例;图7示出在一个实施例中基于抽样的轻量表比较方法的一个方案;图8是示出在一个实施例中RETRY_COMPARE_WAIT时间间隔如何处理复制;图9示出在一个实施例中在活更新环境下确定特定差异的持久性类型的方法;图10示出如在此所述用于对持久性差异进行确定的系统;图11示出用于对采用使用仅专门用于对单独差异执行再检验的专用处理线程的持久性差异进行确定的系统;图12示出因为进度监视功能指出获得的完成统计结果的典型输出消息;图13是示出执行在此描述的详细过程的结果的典型差异检测结果表;以及图14示出典型报告,配置该典型报告,以在差异检测中提供全部统计结果。具体实施方式现在将参考下面的讨论和本申请的附图更详细描述本公开。为了说明的目的提供本申请的图,本说明书的下面将更详细参考本申请的图。现在描述提供轻量表比较的系统、方法和计算机程序产品。在此描述的轻量表比较的系统和方法的特征从1)统计结果;2)抽样;和/或者3)物化
查询表(MQT)方面确定源表和目标表中的差异,该MQT是其定义基于查询结果的表。根据进一步特征,现在描述的用于轻量表比较的系统、方法和计算机程序产品还运行,以在“活”更新环境下,检测对相应源和目标数据库表行项目中的差异,在“活”更新环境下,在执行比较操作的同时,更新初始源和/或者目标数据库表,以识别检测到差异的特定行的持久性类型。这可以包含在已经确定为不同的源和目标数据库表行中对基于数据行的并列数据块执行“再检验”的特征。因此,在第一方面中,为了比较数据,执行“小”块的比较。当比较“活”数据时,使用小数据块具有显著优势,因为仅当比较一对块时,既从源又从目标读出数据,包含在这些块中的行发生变化的概率小。实用程序捕获比较应用访问其之前对块的任何变化,而不考虑对该块完成比较之后发生的任何变化。因此,在第一方面中,提供了一种轻量表比较的系统和方法,以从1)统计结果;2)抽样;和/或者3)物化查询表(MQT)方面确定源(src)数据表和目标(trgt)数据表中的差异,该MQT是其定义基于查询结果的表。在一个方面中,利用“合并”过程,用于轻量表比较的系统和方法实现用于数据表比较的系统架构和操作环境,在该“合并”过程中,合并过程根据上述系统和共有的共同未决的标题为“Database Table Comparison”的美国专利公布No.2012/0317134和标题为“Difference Determination in a Database Environment”的美国专利公布No.US 2014/0372374描述的方法执行数据表比较,如同在此做全面陈述一样,通过引用合并这两个美国专利公布中每个的全部公开和内容。在又一个方面中,用于轻量表比较的系统和方法实现修改的系统架构和操作环境,以执行差异再检验技术,关于持久性,该差异再检验技术保证最新确定差异及其状况。图1是示出实现根据一个实施例的系统和方法的数据比较架构10的原理框图。该架构包含第一源数据库(DMBS)20A本文档来自技高网
...

【技术保护点】
一种表数据比较的方法,包括:识别包括源数据库表的数据的行的子集的块和包括第二数据库表的数据的行的子集的相应块;获得与包含在所述源表的识别块中的数据关联的统计结果值,并且获得包含在目标表块的所述相应块中的数据的又一个统计结果值;比较统计结果值,以确定匹配结果;以及基于所述比较的结果,确定每个源数据库表和目标数据库表的块是否一致,其中编程处理器设备执行所述识别、获得、比较以及确定操作。

【技术特征摘要】
2015.03.20 US 14/663,8191.一种表数据比较的方法,包括:识别包括源数据库表的数据的行的子集的块和包括第二数据库表的数据的行的子集的相应块;获得与包含在所述源表的识别块中的数据关联的统计结果值,并且获得包含在目标表块的所述相应块中的数据的又一个统计结果值;比较统计结果值,以确定匹配结果;以及基于所述比较的结果,确定每个源数据库表和目标数据库表的块是否一致,其中编程处理器设备执行所述识别、获得、比较以及确定操作。2.根据权利要求1所述的方法,还包括:在确定了不匹配比较结果时,提取每个所述识别的且相应的块,并且还对所述识别块和相应块中的行的逐行比较累计数据进行比较,以进行一致性确定;或者在确定匹配比较结果时,避免为了对所述识别的且相应的块执行逐行比较从所述块所述提取所述数据。3.根据权利要求2所述的方法,其中所述源数据库表和所述目标数据库表包括多个块,并且在确定匹配比较结果时,从所述源数据库表和目标数据库表识别又一个块,并且对所述又一个块重复所述获得、比较和一致性确定,以及对多个块重复所述识别、获得、比较和一致性确定。4.根据权利要求3所述的方法,其中所述识别块包括识别物化查询表图,所述物化查询表图定义形成在先应用用户数据库查询操作的结果的行的子集。5.根据权利要求3所述的方法,其中所述识别块包括识别通过抽样操作选择的所述源数据库表的行。6.根据权利要求5所述的方法,其中所述抽样操作采用随机选择函数。7.根据权利要求3所述的方法,其中所述获得统计结果值包括如下中的一个或者多个:采用处理收集统计结果,统计结果包括:所述块或者表的行计数(基数)
\t值、所述块或者表的列计数值、所述块或者表的平均行长度值、统计结果的基数和直方图、键基数值、对所述块或者表的一个或者多个列产生的规定累计值、对所述块或者表的一个或者多个列产生的规定平均值、对所述块或者表的一个或者多个列产生的规定标准偏差值;以及采用用户定义函数处理所述块中的所述数据,以计算统计结果值。8.根据权利要求3所述的方法,在所述目标数据库表包含由所述源表复制的数据的数据库环境下运行,所述方法还包括:在第一时间点,确定所述源表中的所述识别块的行与所述目标表中的所述相应块的所述行之间的第一组差异;在所述第一时间点后至少复制等待时间间隔之后的第二时间点,确定所述源表中的所述块的行与目标表中的所述块的所述行之间的第二组差异,基于不同时间点的所述第一组差异和第二组差异,将所述源表的所述识别块与所述目标表的相应块之间的差异确定为是持久性类型、非持久性类型、暂停类型或者未知类型中的一个。9.根据权利要求8所述的方法,还包括:确定进入操作的未提交读出(UR)隔离级别模式,使得查询数据避免与一个或者多个用户应用争用锁,以及如果确定进入所述UR模式,并且当前时间在复制等待时间间隔之后,则再比较所述源表和目标表的相应块中的相应行的数据的所述累计数据值,并且如果确定所述行的所述再比较的累计数据值匹配,则所述差异类型不是持久性的,否则,如果确定所述再比较累计数据值差异为不匹配,则比较当前确定差异结果和从在先等待时间间隔发生的所述行的差异确定结果,并且如果确定所述当前差异结果与在先差异结果之间的所述比较差异匹配,则确定是否在使共享锁布置于提取行上并且使另一个处理将共享锁布置于同一个行上的操作的游标稳定性(CS)隔离级别模式下评估了所述行的所述差异结果,并且如果未在操作的所述CS级别模式下操作,则确定所述差异类型是未知的;并且如果确定所述当前差异结果与在先差异结果之间的所述比较差异匹
\t配,则确定所述差异类型是持久性的。10.根据权利要求9所述的方法,其中如果确定所述行的所述比较的当前确定差异结果和所述在先差异确定结果不匹配,则:在所述UR模式下,将对所述源表和目标表中的块的相应行重复所述再比较所述累计数据值规定的迭代次数,直到检测到匹配状况;并且如果在同一个迭代中未检测到匹配状况,则:对所述行重复所述比较所述当前确定差异结果和所述在先差异确定结果;以及如果在达到所述迭代次数之后,保持所述不匹配状况差异结果,则确定所述持久性类型是暂停的。11.一种用于表数据比较的系统,包括:存储器,配置所述存储器,...

【专利技术属性】
技术研发人员:S布尔诺奈斯YO劳李潇闵红J威伦加周祥为
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1