数据差异对比方法和装置、存储介质以及处理器与流程

文档序号:12963704阅读:240来源:国知局
数据差异对比方法和装置、存储介质以及处理器与流程

本发明涉及数据库领域,具体而言,涉及一种数据差异对比方法和装置、存储介质以及处理器。



背景技术:

随着近年来企业信息化的逐步深入,企业数据量也成几何级数的增加,为保证在线系统数据安全,数据库容灾成为信息数据中心建设的重中之重。其中,逻辑复制技术是一种基于解析源数据库在线日志的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库数据同步的技术,该技术被广泛应用于企业数据容灾场景。但是,逻辑复制并不能限制目标数据库的写入请求,那也就不能保证源数据库和目标数据库的绝对一致。而目前行业里对于逻辑复制下源数据库与目标数据库之间的数据差异对比的方法研究很少,特别是对于不影响源数据库正常运行状态下与目标数据库数据差异对比方法更是绝无仅有。因此,如何设计一种不影响源数据库正常对外提供业务且能高效与目标数据库进行数据差异对比的方法,是亟待解决的问题。

针对相关技术无法在不影响源数据库正常运行状态下与目标数据库进行数据差异对比的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据差异对比方法和装置、存储介质以及处理器,以至少解决相关技术无法在不影响源数据库正常运行状态下与目标数据库进行数据差异对比的技术问题。

根据本发明实施例的一个方面,提供了一种数据差异对比方法,包括:中断源数据库与目标数据库之间的逻辑复制进程,并确定当前目标数据库的静态接入点;查找目标数据库的静态接入点对应的源数据库的scn号;根据源数据库的scn号将物理备库闪回至物理备库的静态接入点,其中,物理备库是与源数据库相同的数据库;以及将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果。

进一步地,在根据源数据库的scn号将物理备库闪回至物理备库的静态接入点之后,该方法还包括:判断目标数据库是否存在用于连接到物理备库的数据库链接;在目标数据库存在用于连接到物理备库的数据库链接的情况下,执行将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比的步骤;在目标数据库不存在用于连接到物理备库的数据库链接的情况下,建立数据库链接,再执行将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比的步骤。

进一步地,在中断源数据库与目标数据库之间的逻辑复制进程,并确定当前目标数据库的静态接入点之前,该方法还包括:获取与源数据库相同的物理备库;将物理备库的闪回数据库属性以及日志应用属性设置为启用状态,其中,闪回数据库属性用于指示将物理备库闪回至物理备库的静态接入点,日志应用属性用于指示同步物理备库与源数据库之间的数据。

进一步地,在将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果之后,该方法还包括:在对比结果指示物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据没有差异的情况下,清除对比结果,启用源数据库与目标数据库之间的逻辑复制进程,并设置闪回数据库属性为关闭状态,设置日志应用属性设置为启用状态;在对比结果指示物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据有差异的情况下,修正目标数据库中的差异数据,再清除对比结果,启用源数据库与目标数据库之间的逻辑复制进程,并设置闪回数据库属性为关闭状态,设置日志应用属性设置为启用状态。

进一步地,将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果包括:分别将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据拆分成多个区域,其中,每个区域包括多个行;依次对多个区域中的每个区域进行数据差异对比,得到对比结果。

进一步地,依次对多个区域中的每个区域进行数据差异对比,得到对比结果包括:将物理备库和目标数据库中的每个区域通过主键进行匹配,并计算每个区域中所有行的列值所对应的哈希值的总和;若物理备库中目标区域中所有行的列值所对应的哈希值的总和与目标数据库中目标区域中所有行的列值所对应的哈希值的总和相等,则确定物理备库中目标区域的数据与目标数据库中目标区域数据相同;若物理备库中目标区域中所有行的列值所对应的哈希值的总和与目标数据库中目标区域中所有行的列值所对应的哈希值的总和不相等,则确定物理备库中目标区域的数据与目标数据库中目标区域数据不相同。

进一步地,在物理备库中目标区域中所有行的列值所对应的哈希值的总和与目标数据库中目标区域中所有行的列值所对应的哈希值的总和不相等的情况下,该方法还包括:对目标区域重复执行以下步骤,直至确定差异数据所在的行,其中,目标区域在执行以下步骤时被标记为当前区域:将当前区域拆分成多个子区域;判断物理备库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和与目标数据库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和是否相等;若物理备库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和与目标数据库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和不相等,则将目标子区域确定为当前区域。

根据本发明实施例的另一方面,还提供了一种数据差异对比装置,包括:确定单元,用于中断源数据库与目标数据库之间的逻辑复制进程,并确定当前目标数据库的静态接入点;查找单元,用于查找目标数据库的静态接入点对应的源数据库的scn号;闪回单元,用于根据源数据库的scn号将物理备库闪回至物理备库的静态接入点,其中,物理备库是与源数据库相同的数据库;以及对比单元,用于将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果。

根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的方法。

根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任一项所述的方法。

在本发明实施例中,通过中断源数据库与目标数据库之间的逻辑复制进程,并确定当前目标数据库的静态接入点;查找目标数据库的静态接入点对应的源数据库的scn号;根据源数据库的scn号将物理备库闪回至物理备库的静态接入点,其中,物理备库是与源数据库相同的数据库;以及将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果,达到了无需源数据库的停机窗口亦可以实现其与目标数据库之间的数据差异对比的目的,进而解决了相关技术无法在不影响源数据库正常运行状态下与目标数据库进行数据差异对比的技术问题,从而实现了在源数据库正常运行的基础上确保源数据库与目标数据库数据一致性的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的数据差异对比方法的流程图;

图2是根据本发明优选实施例的逻辑复制下数据差异对比的方法的流程图;

图3是根据本发明优选实施例的物理备库与目标数据库之间数据差异对比的方法的流程图;以及

图4是根据本发明实施例的数据差异对比装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种数据差异对比方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的数据差异对比方法的流程图,如图1所示,该方法包括如下步骤:

步骤s102,中断源数据库与目标数据库之间的逻辑复制进程,并确定当前目标数据库的静态接入点;

步骤s104,查找目标数据库的静态接入点对应的源数据库的scn号;

步骤s106,根据源数据库的scn号将物理备库闪回至物理备库的静态接入点,其中,物理备库是与源数据库相同的数据库;

步骤s108,将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果。

上述步骤通过中断源数据库与目标数据库之间的逻辑复制进程,并确定当前目标数据库的静态接入点;查找目标数据库的静态接入点对应的源数据库的scn号;根据源数据库的scn号将物理备库闪回至物理备库的静态接入点,其中,物理备库是与源数据库相同的数据库;以及将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果,达到了无需源数据库的停机窗口亦可以实现其与目标数据库之间的数据差异对比的目的,进而解决了相关技术无法在不影响源数据库正常运行状态下与目标数据库进行数据差异对比的技术问题,从而实现了在源数据库正常运行的基础上确保源数据库与目标数据库数据一致性的技术效果。

需要说明的是,本发明实施例对源数据库和目标数据库中存储的数据类型不做具体限定,源数据库与目标数据库之间可以进行逻辑复制进程,以使得源数据库和目标数据库保持数据一致性。为了在不影响源数据库的正常运行的基础上对源数据库与目标数据库之间的数据进行差异对比,本发明实施例可以在中断源数据库与目标数据库之间的逻辑复制进程之后,利用与源数据库相同的物理备库与目标数据库进行数据差异对比,其中,物理备库与源数据库完全相同。在利用源数据库的物理备库与目标数据库进行数据差异对比之前,本发明实施例可以首先获取该物理备库,具体可以通过定位源数据库所属的物理备库的地址,如果定位到该物理备库的地址,则说明源数据库的物理备库存在,则可以直接利用该定位到的地址获取到该物理备库;如果定位不到该物理备库的地址,本发明实施例可以先建立该源数据库所属的物理备库。

在获取到源数据库所属的物理备库之后,本发明实施例可以将物理备库的闪回数据库属性以及日志应用属性设置为启用状态,其中,闪回数据库属性可以用于指示将物理备库闪回至某个物理备库的静态接入点,日志应用属性可以用于指示同步物理备库与源数据库之间的数据。需要说明的是,本发明实施例通过将物理备库的日志应用属性设置为启用状态,目的是为了保证物理备库中的数据能够保证与源数据库中的数据实时同步,这样能够达到通过将物理备库与目标数据库进行数据差异对比实现源数据库与目标数据库进行数据差异对比的目的。还需要说明的是,本发明实施例通过将物理备库的闪回数据库属性设置为启用状态,目的是为了在中断源数据库与目标数据库之间的逻辑复制进程之后,利用准确地将物理备库中的数据闪回至与目标数据库当前数据静态接入点相对应的物理备库的静态接入点,以保证物理备库中需要对比的数据与目标数据库中需要对比的数据的同步性。

在对获取到的物理备库进行属性设置之后,本发明实施例可以执行上述步骤s102,即中断源数据库与目标数据库之间的逻辑复制进程,目标数据库此时已经进入数据静态接入点,本发明实施例可以确定当前目标数据库的静态接入点,以达到根据该目标数据库的静态接入点确定与其相对应的物理备库的静态接入点。可选地,根据该目标数据库的静态接入点确定与其相对应的物理备库的静态接入点可以通过上述步骤s104和步骤s106实现,具体地,本发明实施例可以根据逻辑复制进程查找出目标端最终应用事务所对应的源端scn号,然后根据查找出的源端scn号把源数据库所属的物理备库闪回到此静态接入点。通过上述过程便可以实现在中断源数据库与目标数据库之间的逻辑复制进程时,可以同步对比物理备库的静态接入点之间的数据与目标数据库的静态接入点之间的数据。

作为一种可选的实施例,在根据源数据库的scn号将物理备库闪回至物理备库的静态接入点之后,本发明实施例还可以判断目标数据库是否存在用于连接到物理备库的数据库链接;在目标数据库存在用于连接到物理备库的数据库链接的情况下,则直接执行将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比;在目标数据库不存在用于连接到物理备库的数据库链接的情况下,则需要首先建立该数据库链接,以保证目标数据库可以连接到物理备库,然后再执行将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比。

本发明实施例可以通过将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,实现源数据库与目标数据库之间数据差异对比。

作为一种可选的实施例,将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比可以包括以下过程,具体地:可以分别将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据拆分成多个区域,其中,每个区域可以包括多个行;然后依次对多个区域中的每个区域进行数据差异对比,以得到对比结果。

可选地,在对每个区域进行数据差异对比时,本发明实施例可以将物理备库和目标数据库中的每个区域通过主键进行一一匹配,并将每个区域中所有行的列值转换为哈希值,并对其求和;若物理备库中目标区域中所有行的列值所对应的哈希值的总和与目标数据库中目标区域中所有行的列值所对应的哈希值的总和相等,则可以确定物理备库中目标区域的数据与目标数据库中目标区域数据相同;若物理备库中目标区域中所有行的列值所对应的哈希值的总和与目标数据库中目标区域中所有行的列值所对应的哈希值的总和不相等,则可以确定物理备库中目标区域的数据与目标数据库中目标区域数据不相同。其中,目标区域可以为任意数据区域。

可选地,在物理备库中目标区域中所有行的列值所对应的哈希值的总和与目标数据库中目标区域中所有行的列值所对应的哈希值的总和不相等的情况下,也即在确定物理备库中目标区域的数据与目标数据库中目标区域数据不相同之后,本发明实施例可以对该目标区域重复执行以下步骤,直至确定差异数据所在的行,其中,目标区域在执行以下步骤时被标记为当前区域:将当前区域拆分成多个子区域;判断物理备库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和与目标数据库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和是否相等;若物理备库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和与目标数据库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和不相等,则将目标子区域确定为当前区域。

采用上述可选实施例,通过把物理备库和目标数据库需要比较的对象数据行拆分成多个区域,每个区域包含一部分行;把物理备库和目标数据库每个区域通过主键一一匹配,把所有行的列值换算成哈希值,再进行求和计算,如果相等即认为区域内所有数据行相同;如果不相等,再把该区域拆分成包含更少行的区域继续比对,直到找到差异数据所在的具体行的标识号。该可选实施例既能够保证数据差异对比的准确度,又能够提高数据差异对比的效率。

作为一种可选的实施例,在将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果之后,如果该对比结果指示物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据没有差异,则本发明实施例可以清除该对比结果,启用源数据库与目标数据库之间的逻辑复制进程,并设置闪回数据库属性为关闭状态,设置日志应用属性设置为启用状态;如果该对比结果指示物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据有差异,则本发明实施例可以修正目标数据库中的差异数据,再清除对比结果,启用源数据库与目标数据库之间的逻辑复制进程,并设置闪回数据库属性为关闭状态,设置日志应用属性设置为启用状态。

需要说明的是,如果物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据有差异,则本发明实施例可以利用物理备库中的数据来修正目标数据库中的差异数据,或者也可以采用人工方式手动修正目标数据库中的差异数据,此处本发明不做具体限定。

本发明还提供了一种优选实施例,该优选实施例提供了一种逻辑复制下数据差异对比的方法,该方法对源数据库维护时间与成本为零,且能高效查找出于源数据库与目标数据库之间的数据差异,极大地保证了企业容灾系统的可靠性与可用性。

本发明是通过以下技术方案实现的:

图2是根据本发明优选实施例的逻辑复制下数据差异对比的方法的流程图,如图2所示,该方法可以包括如下步骤:

步骤s201,定位源数据库(source库)所属的物理备库(physicalstandby库)的地址,若能够定位到该地址则直接进入步骤s202;否则建立physicalstandby库后进入步骤s202。

步骤s202,获取physicalstandby库的闪回数据库状态(flashbackdatabase状态),若flashbackdatabase状态为启用状态则直接进入步骤s203;否则启用physicalstandby库的flashbackdatabase状态后进入步骤s203。

步骤s203,确认physicalstandby库启用日志应用状态(applyredolog状态),若applyredolog状态为启用状态则直接进入步骤s204;否则启用physicalstandby库的applyredolog状态后进入步骤s204。

步骤s204,中断source库与目标数据库(target库)的逻辑复制进程,确认target库已进入数据静态接入点。

步骤s205,根据逻辑复制进程查找出目标端最终应用事务所对应的源端scn号。

步骤s206,根据查找出的源端scn号把source库所属的physicalstandby库闪回(flashback)到此静态接入点。

步骤s207,判断target库是否拥有连接到source库所属的physicalstandby库的数据库链接(dblink),若有则直接进入步骤s208;否则建立dblink后进入步骤s208。

步骤s208,开始physicalstandby库与target库之间的数据对比,若数据没有差异则直接进入步骤s209;若数据有差异则修正数据差异后进入步骤s209。

步骤s209,清除physicalstandby库与target库之间的数据对比结果。

步骤s210,重新启用source库到target库的逻辑复制进程。

步骤s211,关闭source库所属的physicalstandby库的flashbackdatabase状态,并重新启用applyredolog状态,完成逻辑复制下source库与target库之间的数据差异对比。

图3是根据本发明优选实施例的物理备库与目标数据库之间数据差异对比的方法的流程图,如图3所示,步骤s208可以包括以下步骤:

步骤s2081,把physicalstandby库和target库需要比较的对象数据行拆分成多个区域,每个区域包含一部分行。

步骤s2082,把physicalstandby库和target库每个区域通过主键一一匹配,把所有行的列值换算成hash值,再进行求和计算,如果该和值相等即认为该区域内所有数据行相同,完成physicalstandby库与target库之间的数据对比。

步骤s2083,如果该和值不相等,再把该区域拆分成包含更少行的区域继续比对,直到找到hash值不同的具体行的标识号rowid。

步骤s2084,罗列出physicalstandby库和target库不同行值的行rowid。

步骤s2085,利用physicalstandby库行数据修复target库行数据。

步骤s2086,修复完成后对有差异的区域进行再次核查,若核查没有差异则进入步骤s209;若核查还有差异则重新返回执行步骤s2085。

从本发明所提供的技术方案可以看出,本发明提供了一种逻辑复制下数据差异对比的方法,通过定位source库所属physicalstandby库地址;获取physicalstandby库flashbackdatabase状态;确认physicalstandby库启用applyredolog状态;中断source库与target库逻辑复制进程,确认target库已进入数据静态接入点;根据逻辑复制进程查找出目标端最终应用事务所对应的源端scn号;根据查找出的源端scn号把source库所属physicalstandby库flashback到此静态接入点;建立从target库到physicalstandby库的dblink;开始数据差异对比,本发明提出的逻辑复制下数据差异对比的方法不需要source库的停机窗口,极大的保证了source库对外提供业务效率,降低了source库运维成本,且能高效对比与target库的数据差异,确保了source库与target库数据绝对一致性。

本发明提供的技术方案具有以下优异效果:

1、本发明所提供的技术方案中,能灵活查找target库静态数据接入点,同时通过逻辑复制进程所查找的最终应用事务scn号应用到source库所属physicalstandby库而不是source库本身,巧妙避开了source库所需要的停机维护窗口,极大保证了source库对外提供业务效率。

2、本发明所提供的技术方案,实现了高效的对source库和target库的数据差异对比,确保了容灾环境source库和target库的数据绝对一致性,避免数据丢失。

3、本发明提供的技术方案,应用广泛,具有显著的社会效益和经济效益。

根据本发明实施例,还提供了一种数据差异对比装置的装置实施例,需要说明的是,该数据差异对比装置可以用于执行本发明实施例中的数据差异对比方法,本发明实施例中的数据差异对比方法可以在该数据差异对比装置中执行。

图4是根据本发明实施例的数据差异对比装置的示意图,如图4所示,该装置可以包括:

确定单元42,用于中断源数据库与目标数据库之间的逻辑复制进程,并确定当前目标数据库的静态接入点;查找单元44,用于查找目标数据库的静态接入点对应的源数据库的scn号;闪回单元46,用于根据源数据库的scn号将物理备库闪回至物理备库的静态接入点,其中,物理备库是与源数据库相同的数据库;以及对比单元48,用于将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果。

需要说明的是,该实施例中的确定单元42可以用于执行本申请实施例中的步骤s102,该实施例中的查找单元44可以用于执行本申请实施例中的步骤s104,该实施例中的闪回单元46可以用于执行本申请实施例中的步骤s106,该实施例中的对比单元48可以用于执行本申请实施例中的步骤s108。上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。

可选地,该装置还可以包括:判断单元,用于在根据源数据库的scn号将物理备库闪回至物理备库的静态接入点之后,判断目标数据库是否存在用于连接到物理备库的数据库链接;第一执行单元,用于在目标数据库存在用于连接到物理备库的数据库链接的情况下,执行将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比的步骤;第二执行单元,用于在目标数据库不存在用于连接到物理备库的数据库链接的情况下,建立数据库链接,再执行将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比的步骤。

可选地,该装置还可以包括:获取单元,用于在中断源数据库与目标数据库之间的逻辑复制进程,并确定当前目标数据库的静态接入点之前,获取与源数据库相同的物理备库;设置单元,用于将物理备库的闪回数据库属性以及日志应用属性设置为启用状态,其中,闪回数据库属性用于指示将物理备库闪回至物理备库的静态接入点,日志应用属性用于指示同步物理备库与源数据库之间的数据。

可选地,该装置还可以包括:第三执行单元,用于在将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据进行差异对比,得到对比结果之后,在对比结果指示物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据没有差异的情况下,清除对比结果,启用源数据库与目标数据库之间的逻辑复制进程,并设置闪回数据库属性为关闭状态,设置日志应用属性设置为启用状态;第四执行单元,用于在对比结果指示物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据有差异的情况下,修正目标数据库中的差异数据,再清除对比结果,启用源数据库与目标数据库之间的逻辑复制进程,并设置闪回数据库属性为关闭状态,设置日志应用属性设置为启用状态。

可选地,对比单元28可以包括:拆分模块,用于分别将物理备库中物理备库的静态接入点之前的数据与目标数据库中目标数据库的静态接入点之前的数据拆分成多个区域,其中,每个区域包括多个行;对比模块,用于依次对多个区域中的每个区域进行数据差异对比,得到对比结果。

可选地,对比模块可以包括:计算模块,用于将物理备库和目标数据库中的每个区域通过主键进行匹配,并计算每个区域中所有行的列值所对应的哈希值的总和;第一确定模块,用于在物理备库中目标区域中所有行的列值所对应的哈希值的总和与目标数据库中目标区域中所有行的列值所对应的哈希值的总和相等的情况下,则确定物理备库中目标区域的数据与目标数据库中目标区域数据相同;第二确定模块,用于在物理备库中目标区域中所有行的列值所对应的哈希值的总和与目标数据库中目标区域中所有行的列值所对应的哈希值的总和不相等的情况下,则确定物理备库中目标区域的数据与目标数据库中目标区域数据不相同。

可选地,对比模块还可以包括:执行模块,用于对目标区域重复执行以下步骤,直至确定差异数据所在的行,其中,目标区域在执行以下步骤时被标记为当前区域:将当前区域拆分成多个子区域;判断物理备库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和与目标数据库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和是否相等;若物理备库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和与目标数据库多个子区域中的目标子区域中所有行的列值所对应的哈希值的总和不相等,则将目标子区域确定为当前区域。

通过上述单元以及模块,可以达到无需源数据库的停机窗口亦可以实现其与目标数据库之间的数据差异对比的目的,进而解决了相关技术无法在不影响源数据库正常运行状态下与目标数据库进行数据差异对比的技术问题,从而实现了在源数据库正常运行的基础上确保源数据库与目标数据库数据一致性的技术效果。

为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据差异对比方法。

为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据差异对比方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1