CN112527894A - 一种数据库一致性校验方法及系统 - Google Patents
一种数据库一致性校验方法及系统 Download PDFInfo
- Publication number
- CN112527894A CN112527894A CN202011355273.XA CN202011355273A CN112527894A CN 112527894 A CN112527894 A CN 112527894A CN 202011355273 A CN202011355273 A CN 202011355273A CN 112527894 A CN112527894 A CN 112527894A
- Authority
- CN
- China
- Prior art keywords
- source
- service table
- target
- time window
- time
- 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
Images
Classifications
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及信息传输技术领域,尤其涉及一种数据库一致性校验方法及系统,方法包括:在源业务表和目标业务表中定义一个时间窗口,如果源业务表中包含修改时间处于该时间窗口的时间范围内的增量数据,则根据增量数据,执行确定源业务表和目标业务表的一致性。如果源业务表中不包含修改时间处于该时间窗口的时间范围内的增量数据,则不执行确定该时间窗口内的源业务表和目标业务表的一致性,直接忽略该时间窗口时间范围内的源业务表和目标业务表的一致性。本申请实施例只在时间窗口的时间范围内修改过数据时,校验源业务表和目标业务表的一致性,从而缩短校验时间,提高校验灵活度,同时减轻两端数据库的负载压力。
Description
技术领域
本申请涉及信息传输技术领域,尤其涉及一种数据库一致性校验方法及系统。
背景技术
随着互联网迅速发展,计算机需要处理的业务也越来越多,业务的稳定性备受关注。很多企业都会部署多个机房,各机房中部署数据库系统,这样当一个机房出现故障,业务可以迅速切换到另外的机房正常工作。
为了保证各个机房都具有一套完整的数据,各个机房的数据库之间经常需要迁移和同步操作。但是多机房之间经常性的数据迁移和同步,可能会因网络延迟等原因,导致各机房数据库之间的数据不一致。因此,各个机房的数据库之间的一致性校验由为重要。
目前,对于非主从同步的两个独立数据库,通常采用全库扫描的方法,对两个数据库进行对比。然而,全库扫描方法对于数据量较大的数据库而言,校验时间长,校验灵活度较差,对两端数据库的负载造成的压力较大。
发明内容
为了解决全库扫描方法对于数据量较大的数据库而言,校验时间长,校验灵活度较差,对两端数据库的负载造成的压力较大,同时也无法满足只校验增量部分数据的需求,灵活度较差的问题,本申请提供了一种数据库一致性校验方法及系统。
第一方面,本申请实施例提供一种数据库一致性校验系统,包括:
源数据库,包含源业务表;
目标数据库,包含目标业务表,所述目标业务表为所述源业务表从所述源数据库同步至所述目标数据库后生成的;
校验单元,用于执行:
在所述源业务表包含修改时间处于时间窗口的时间范围内的增量数据时,根据处于所述时间窗口内的所述源业务表的增量数据和处于同一所述时间窗口内的所述目标业务表的增量数据的大小关系,执行确定所述源业务表和所述目标业务表的一致性;
在所述源业务表不包含修改时间处于时间窗口的时间范围内的增量数据时,不执行确定所述时间窗口内的所述源业务表和所述目标业务表的一致性。
第二方面,本申请实施例提供一种数据库一致性校验方法,包括:
在源业务表包含修改时间处于时间窗口的时间范围内的增量数据时,根据处于所述时间窗口内的所述源业务表的增量数据和处于同一所述时间窗口内的目标业务表的增量数据的大小关系,执行确定所述源业务表和所述目标业务表的一致性,其中所述目标业务表为所述源业务表从所述源数据库同步至所述目标数据库后生成的;
在所述源业务表不包含修改时间处于时间窗口的时间范围内的增量数据时,不执行确定所述时间窗口内的所述源业务表和所述目标业务表的一致性。
本申请提供的技术方案包括以下有益效果:在源业务表和目标业务表中定义一个时间窗口,用该时间窗口框选源业务表和目标业务表,如果源业务表中包含修改时间处于该时间窗口的时间范围内的增量数据,则根据源业务表增量数据和目标业务表增量数据,确定源业务表和目标业务表的一致性。如果源业务表中不包含修改时间处于该时间窗口的时间范围内的增量数据,则不确定该时间窗口内的源业务表和目标业务表的一致性,直接忽略该时间窗口时间范围内的源业务表和目标业务表的一致性。本申请实施例只在时间窗口的时间范围内修改过数据时,校验源业务表和目标业务表的一致性,从而缩短校验时间,提高校验灵活度,同时减轻两端数据库的负载压力。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种数据库一致性校验系统的框架图;
图2示出了本申请实施例提供的一种数据库一致性校验方法中业务表示例图;
图3示出了本申请实施例提供的一种数据库一致性校验方法流程示意图;
图4示出了本申请实施例提供的一种数据库一致性校验原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本说明书通篇提及的″多个实施例″、″一些实施例″、″一个实施例″或″实施例″等,意味着结合该实施例描述的具体特征、结构或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语″在多个实施例中″、″在一些实施例中″、″在至少另一个实施例中″或″在实施例中″等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、结构或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、结构或特性可全部或部分地与一个或多个其他实施例的特征、结构或特性进行组合。这种修改和变型旨在包括在本申请的范围之内。
目前对于存在主从同步关系的源数据库和目标数据库,可以利用现有的检验工具进行数据一致性校验,但是对于两个独立部署,不存在主从同步的数据库,则无法利用现有的检验工具进行校验。对于非主从同步的源数据库和目标数据库通常采用全库扫描的方法,对两个数据库进行对比。然而,全库扫描方法对于数据量较大的数据库而言,校验时间长,校验灵活度较差,对两端数据库的负载造成的压力较大。
为了解决上述问题,如图1所示,本申请实施例提供一种数据库一致性校验系统,系统包括:源数据库、目标数据库以及校验单元。源数据库和目标数据库之间可以通过同步单元同步文件,具体的,源数据库将业务表上传至同步单元,同步单元将业务表发送至目标数据库,从而实现业务表的同步。源数据库和目标数据库将需要校验的信息上传至校验单元,在校验单元中实现对比校验。
本申请实施例的实现基于SQL(Structured Query Language,结构化查询语言)语句,且所有业务表均含有修改时间字段。如2图所示的业务表中包括Id字段、name(名称)字段、created_time(创建时间)字段以及modified_time(修改时间)字段。本申请实施例中,新增数据的修改时间与创建时间相同,如果某一数据被修改或者以业务逻辑方式删除(即使用deleted column函数标记删除),则修改时间更新为修改数据的时间。示例性的,Id字段为4的数据创建时,创建时间和修改时间相同,如果将Id字段为4的数据的name修改为″wer″,则修改时间更新为修改数据时的时间。业务表中的数据可以按照创建时间顺序排列。源数据库和目标数据库中包含有多个表,本申请以源数据库中的一个源业务表和目标数据库中对应的目标业务表为例,阐述一致性校验的过程。
如图3所示的数据库一致性校验方法流程示意图和图4所示的数据库一致性校验原理示意图,在源数据库中定义一个滑动时间窗口,该滑动时间窗口能够根据指定的时间长度来框住业务表中按照时间序列排列的数据,形成数据块,从而计算滑动时间窗口内的统计指标。本申请实施例中,定义的滑动时间窗口具有设置的时间范围,在源业务表中包含有修改时间在滑动时间窗口设置的时间范围内的增量数据时,计算源业务表中该增量数据的源校验和。
同时,在目标数据库中定义同一时间范围的滑动时间窗口,用同一时间范围的滑动时间窗口扫描目标数据库中目标业务表的数据。获得目标业务表中包含有修改时间在该滑动时间窗口时间范围内的增量数据,计算目标业务表中该增量数据的目标校验和。最后根据计算的源校验和和目标校验和,确定源业务表和目标业务表的一致性。
具体的,如果源校验和和目标校验和相等时,则确定源业务表和目标业务表一致,如果源校验和和目标校验和不相等时,则确定源业务表和目标业务表不一致。
示例性的,用户想要校验上午八点开始增量的新数据,并且设置滑动时间窗口的大小为1小时,则该时间窗口的开始时间为上午八点,结束时间为上午九点。如果源业务表中包含了修改时间处于上午八点至上午九点范围内的增量数据,则根据源业务表中修改时间处于上午八点至上午九点范围内的增量数据,和目标业务表中修改时间同样处于上午八点至上午九点范围内的增量数据的大小关系,确定源业务表和目标业务表的一致性。具体的,首先从源数据库中找出源业务表在上午八点至上午九点之间修改的数据,列出所有修改数据的主键,在目标数据库中根据列出的主键,查找目标业务表对应的数据,分别计算源业务表在上午八点至上午九点之间修改数据的校验和(例如CRC(Cyclic RedundancyCheck,循环冗余校验码)校验值)与目标业务表对应数据的校验和。最后根据计算得到的源业务表在上午八点至上午九点之间修改数据的校验和与目标业务表对应数据的校验和的大小关系,判断源业务表和目标业务表的一致性。
本申请实施例中增量数据指的是修改、增加以及删除(具体的仅针对业务逻辑删除的数据,即使用deleted column标记删除的数据,不针对直接删除的数据),数据在源业务表中经过修改,删除或者新增加,修改时间如果在定义的时间窗口的时间范围内,则为需要进行一致性检验的增量数据。
在一些实施例中,如果源业务表中包含的数据的修改时间均不在时间窗口的时间范围内,则不需要进行该时间范围内的源业务表和目标业务表的一致性校验。
示例性的,用户想要校验上午七点开始增量数据,并且设置滑动时间窗口的大小为1小时,则该时间窗口的开始时间为上午七点,结束时间为上午八点。但是此时源业务表中包含的数据的修改时间均不在上午七点至上午八点的时间范围内,可以判断在上午七点至上午八点不存在增量数据,也就是源业务表没有经过修改,删除或者新增加。因此,不需要对上午七点至上午八点的源业务表和目标业务表进行一致性校验。
在一些实施例中,在完成某一时间段的源业务表和目标业务表一致性校验后,或者当前时间段不存在增量数据而不需要对源业务表和目标业务表进行一致性校验时,时间窗口可以自动向下一时间段移动。示例性的,在完成上述实施例中,在完成上午八点至上午九点的一致性校验时,时间窗口自动向上午九点至上午十点的时间段移动,从而再根据上述校验过程自动校验上午九点至上午十点的数据。或者不需要对上午七点至上午八点的源业务表和目标业务表进行一致性校验时,时间窗口自动向上午八点至上午九点的时间段移动,从而再根据上述校验过程自动校验上午八点至上午九点的数据。
在一些实施例中,在源业务表中包含有修改时间处于时间窗口的时间范围内的增量数据时,获取修改时间处于时间窗口的时间范围内的所有增量数据,根据所述增量数据创建源增量数据块。同时由于源业务表中的数据和目标业务表中的数据存在对应关系,因此可以根据源业务表中增量数据在源业务表中的位置,获取目标业务表中对应位置的所有增量数据。具体的列出增量数据的主键,根据主键查找目标业务表中对应的数据,则为目标业务表中对应的增量数据。再根据目标业务表中所有增量数据,创建目标增量数据块。分别计算源增量数据块的源校验和和目标增量数据块的目标校验和。如果源校验和和目标校验和相等,则确定源业务表和目标业务表一致。如果源校验和和目标校验和不相等,则确定源业务表和目标业务表不一致。
示例性的,如图4所示,源业务表中包含Id为1~5000个数据,首先用时间范围为上午八点至上午九点的滑动时间窗口框选源业务表,判断5000个数据中是否存在修改时间在上午八点至上午九点的数据。将修改时间在上午八点至上午九点的数据从源业务表中提取出,创建源增量数据块,计算该数据块的校验和。具体的,对数据块中的每个数据,拼接所有列为一个字符串,对拼接后的字符串做checksum(校验和)计算,再合并所有校验和后再做checksum计算,得到最终源校验和。源数据库可以将提取的增量数据的位置信息发送目标数据库,在目标业务表的对应位置提取增量数据,创建目标增量数据块,计算该数据块的校验和。
在一些实施例中,为了提升计算性能,在创建源增量数据块后,可以提取所有数据的主键,以固定chunk(子源增量数据块)大小为一个chunk,将源增量数据块切割为多个子源增量数据块,每一个子源增量数据块分别计算源校验和。另外,每一个子源增量数据块都具有编号。示例性的,将源增量数据块切割为编号为A1~A10 10个子源增量数据块,分别计算这10个子源增量数据块的校验和。
这里将计算结果和其他相关信息插入到校验单元中第三方结果数据库的结果表中,插入结果表中的信息包括:ID字段、数据库名称、业务表名称、子源增量数据块编号、滑动时间窗口的开始时间戳、滑动时间窗口的结束时间戳、子源增量数据块内的最小主键、子源增量数据块内的最大主键,子源增量数据块的校验和值。另外,如果校验单元中为配置第三方结果数据库,需要在计算源业务表的校验和前,在校验单元中创建第三方结果数据库。如果校验单元中已配置第三方结果数据库,并且结果表中存在与当前滑动时间窗口时间范围一致的校验结果记录,则清除已记录的校验结果后,再计算当前滑动时间窗口内源业务表的校验和。
校验单元将记录在第三方结果数据库中的源业务表的校验相关信息发送至消息队列,目标数据库获取源业务表的校验相关信息。根据获取的信息,同样的提取目标业务表中在滑动时间窗口时间范围内的数据,将提取的数据组合成目标增量数据块。按照子源增量数据块编号对应的将目标增量数据块分割成多个子目标增量数据块。
示例性的,按照子源增量数据块编号A1~A10对应的将目标增量数据块分割为编号为A1~A10的10个子目标增量数据块。具体的,根据编号A1~A10的子源增量数据块中包含的增量数据主键,确定对应的目标增量数据块中的数据,从而将目标增量数据块分割为对应编号的子目标增量数据块。再分别计算每一个子目标增量数据块的校验和。按照计算源业务表中子源增量数据块中校验和的计算方法,计算子目标增量数据块的校验和。将计算的子目标增量数据块的校验和存入第三方数据库的结果表中。
在第三方数据库的结果表中,分别查询源数据库和目标数据库在当前滑动时间窗口时间范围内数据块编号一致的但是校验和不一致的数据块,将校验和不一致的数据块输出,得到最终的数据块一致性校验结果。同时,在校验完成后,记录当前滑动时间窗口的结束时间戳,以用于下一时间段的一致性校验的启动。
示例性的,在第三方数据库的结果表中,存在源业务表中编号为A1~A10的子源增量数据块,和编号为A1~A10的子目标增量数据块,当前时间窗口的时间范围为上午八点至上午九点。因此可以根据子源增量数据块和子目标增量块的校验和,判断上午八点至上午九点这一时间段中源数据库和目标数据库的数据一致性。
具体的,分别将A1~A10的子源增量数据块的校验和和对应编号的子目标增量数据块的校验和进行大小关系比较。例如,编号为A1的子源增量数据块的校验和与编号为A1的子目标增量数据块的校验和如果相等,则编号为A1的子源增量数据块和编号为A1的子目标增量数据块一致。如果直至编号为A10的子源增量数据块和编号为A10的子目标增量数据块,所有的子源增量数据块和对应编号的子目标增量数据块均一致,则可以判断时间范围上午八点至上午九点的源数据库和目标数据库一致。
上述校验过程完成后,或者源数据库在上午八点至上午九点这一时间范围内不存在增量数据时,滑动时间窗口向下一时间段移动,重复上述过程,直至完成所有时间段的校验。由以上提供的数据库一致性校验方法可知,本申请的校验方法通过定义一个滑动时间窗口,只校验修改时间在该滑动时间窗口的时间范围内的增量数据的源数据库和目标数据库的一致性。修改时间不在该滑动时间窗口的时间范围内的数据的源数据库和目标数据库的一致性则不进行校验,即能够忽略一些未经过删改的数据,缩短校验时间,提高校验灵活度,同时减轻对两端数据库的负载压力。
在一些实施例中,如果当前校验模式被配置为非贪婪校验模式,则滑动时间窗口的结束时间等于滑动时间窗口的开始时间和预设时间窗口大小之和。如果当前校验模式被配置为贪婪校验模式,并且进行一致性校验的当前时间戳大于等于滑动时间窗口的开始时间与预设时间窗口大小之和,则时间窗口的结束时间自动设定为当前时间戳。示例性的,假设当前时间戳为上午九点,设定的滑动时间窗口的开始时间为上午七点,预设时间窗口大小为1个小时。如果当前校验模式配置为非贪婪模式,则滑动时间窗口的结束时间为上午八点。如果当前校验模式配置为贪婪模式,则滑动时间窗口的结束时间为上午九点。预设时间窗口大小可以根据CPU利用率、内存等性能指标进行调整。
以上已经描述的包括本发明的实现的示例。为了描述要求保护主题的目的,当然不可能描述组件或方法的每一个可设想组合,但是要意识到,本创新的许多另外组合和置换是可能的。相应地,要求保护主题打算包含全部这类改变、修改和变化,其落入所附权利要求的精神和范围之内。此外,包括″摘要″中所述的事物的本申请的所示实现的以上描述并不是要详细列举或者将所公开实现局限于所公开的精确形式。虽然本申请中为了说明目的而描述具体实现和示例,但是如相关领域的技术人员能够认识的,被认为在这类实现和示例的范围之内的各种修改是可能的。
具体来说并且关于由上述组件、装置、电路、系统等所执行的各种功能,除非另加指示,否则用来描述这类组件的术语打算对应于执行所述组件的所指定功能(例如,功能等效)的任何组件,即使不是在结构上等效于所公开结构(其执行要求保护主题的本申请所示示范方面的功能)。在这方面,还将会认识到,创新包括系统以及计算机可读存储介质,其具有计算机可执行指令,以用于执行要求保护主题的各种方法的动作和/或事件。
已经针对若干组件/块之间的交互描述了上述系统/电路/模块。能够意识到,这类系统/电路和组件/块能够包括那些组件或者所指定子组件、所指定组件或者子组件的一些和/或附加组件,并且按照以上述各种置换和组合。子组件还能够实现为通信地耦合到其它组件而不是包括在父组件(分级)内的组件。另外,应当注意,一个或多个组件可组合为提供聚合功能性的单个组件或者分为若干单独子组件,以及可提供任何一个或多个中间层(例如管理层),以通信地耦合到这类子组件,以便提供综合功能性。本申请所述的任何组件还可与本申请中没有具体描述但是本领域的技术人员已知的一个或多个其它组件进行交互。
虽然阐明本发明的广义范围的数值范围和参数是近似值,但是具体示例中阐明的数值尽可能准确地报导。但是,任何数值固有地含有必然产生于其相应测试测量中找到的标准偏差的某些误差。此外,本申请所公开的全部范围要被理解为包含其中所包含的任何和全部子范围。例如,″小于或等于11″的范围能够包括零的最小值与11的最大值之间(并且包含该最小值与最大值)的任何和全部子范围,即,任何和全部子范围具有等于或大于零的最小值以及等于或小于11的最大值(例如1至5)。在某些情况下,如对参数所述的数值能够具有负值。
另外,虽然可能已经仅针对若干实现之一公开了本创新的特定特征,但是这种特征可如对任何给定或特定应用可预期和有利的与其它实现的一个或多个其它特征相组合。此外,在详细描述或者权利要求中使用术语″包括(include、including)″、″具有″、″含有″及其变体和其它类似词语的意义上,这些术语打算采用与作为开放过渡词语的术语″包含″相似的方式是包含的,而没有排除任何附加或其它元件。
遍及本说明书中提到″一个实现″或″一实现″表示结合该实现所述的特定特征、结构或特性包含在至少一个实现中。因此,短语″在一个实现中″或者″在一实现中″在遍及本说明书中的各个位置的出现不一定全部指相同实现。此外,具体特征、结构或特性可采用任何适当方式结合在一个或多个实现中。
此外,遍及本说明书中提到″项″或″文件″意味着结合实现所述的特定结构、特征或对象不一定指相同对象。此外,″文件″或″项″能够指各种格式的对象。
如本申请中使用的术语″节点″、″组件″、″模块″、″系统″等一般打算指作为硬件(例如电路)、硬件和软件的组合的计算机相关实体或者与具有一个或多个特定功能性的操作机器相关的实体。例如,组件可以是(但不限于)在处理器(例如数字信号处理器)上运行的进程、处理器、对象、可执行、执行线程、程序和/或计算机。作为说明,在控制器上运行的应用和控制器两者均能够是组件。一个或多个组件可驻留在进程和/或执行线程中,以及组件可定位在一个计算机上和/或分布在两个或更多计算机之间。虽然在各个实现中描绘单独组件,但是要意识到,组件可采用一个或多个公共组件来表示。此外,各个实现的设计能够包括不同组件放置、组件选择等,以实现最佳性能。此外,″装置″能够采取专门设计硬件;通过其上的软件(其使硬件能够执行特定功能)的执行被专门化的一般化硬件;计算机可读介质上存储的软件;或者其组合的形式。
此外,词语″示例″或″示范″在本申请中用来表示″用作示例、实例或说明″。本申请中描述为″示范″的任何方面或设计不一定被理解为相对其它方面或设计是优选或有利的。相反,词语″示例″或″示范″的使用打算以具体方式呈现概念。如本申请所使用的,术语″或者″打算表示包含″或″而不是互斥″或″。即,除非另加说明或者从上下文清楚地知道,否则″X采用A或B″打算表示自然包含置换的任一个。即,如果X采用A;X采用B;或者X采用A和B两者,则在上述实例的任何实例下均满足″X采用A或B″。另外,如本申请和所附权利要求中所使用的冠词″一(a和an)″应当一般地理解为表示″一个或多个″,除非另加说明或者从上下文清楚地知道针对单数形式。
Claims (10)
1.一种数据库一致性校验系统,其特征在于,包括:
源数据库,包含源业务表;
目标数据库,包含目标业务表,所述目标业务表为所述源业务表从所述源数据库同步至所述目标数据库后生成的;
校验单元,用于执行:
在所述源业务表包含修改时间处于时间窗口的时间范围内的增量数据时,根据处于所述时间窗口内的所述源业务表的增量数据和处于同一所述时间窗口内的所述目标业务表的增量数据的大小关系,执行确定所述源业务表和所述目标业务表的一致性;
在所述源业务表不包含修改时间处于时间窗口的时间范围内的增量数据时,不执行确定所述时间窗口内的所述源业务表和所述目标业务表的一致性。
2.根据权利要求1所述的数据库一致性校验系统,其特征在于,所述校验单元,具体用于执行:
根据所述源业务表中所有的增量数据创建源增量数据块,以及根据所述源业务表中所有的增量数据在所述源业务表中的位置,获取所述目标业务表对应位置上所有的增量数据,同时创建目标增量数据块;
分别计算所述源增量数据块的源校验和和所述目标增量数据块的目标校验和,以及根据所述源校验和和所述目标校验和的大小关系,确定所述源业务表和所述目标业务表的一致性。
3.根据权利要求2所述的数据库一致性校验系统,其特征在于,所述校验单元,具体用于执行:
将所述源增量数据块分割为多个子源增量数据块,分别计算多个子源增量数据块的源校验和,其中,多个所述子源增量数据块具有编号;
将所述目标增量数据块按照所述子源增量数据块的编号分割为多个子目标增量数据块,分别计算多个子目标增量数据块的目标校验和,以及根据所述子源增量数据块的源校验和与对应编号的所述子目标增量数据块的校验和的大小关系,确定所述源业务表和所述目标业务表的一致性。
4.根据权利要求2所述的数据库一致性校验系统,其特征在于,所述校验单元具体用于执行:
在所述源校验和与所述目标校验和相等时,确定所述源业务表和所述目标业务表一致;
在所述源校验和与所述目标校验和不相等时,确定所述源业务表和所述目标业务表不一致。
5.根据权利要求1所述的数据库一致性校验系统,其特征在于,
在当前校验模式为非贪婪校验模式时,所述时间窗口的结束时间等于所述时间窗口的开始时间与预设时间窗口大小之和;
在当前校验模式为贪婪校验模式时,所述时间窗口的结束时间等于进行一致性校验时的当前时间戳,其中,所述当前时间戳大于等于所述时间窗口的开始时间与预设时间窗口大小之和。
6.根据权利要求1所述的数据库一致性校验系统,其特征在于,在所述源业务表不包含修改时间处于时间窗口的时间范围内的增量数据时,所述校验单元,还用于执行:
将所述时间窗口向下一时间段移动。
7.一种数据库一致性校验方法,其特征在于,包括:
在源业务表包含修改时间处于时间窗口的时间范围内的增量数据时,根据处于所述时间窗口内的所述源业务表的增量数据和处于同一所述时间窗口内的目标业务表的增量数据的大小关系,执行确定所述源业务表和所述目标业务表的一致性,其中所述目标业务表为所述源业务表从所述源数据库同步至所述目标数据库后生成的;
在所述源业务表不包含修改时间处于时间窗口的时间范围内的增量数据时,不执行确定所述时间窗口内的所述源业务表和所述目标业务表的一致性。
8.根据权利要求7所述的数据库一致性校验方法,其特征在于,所述方法具体包括:
根据所述源业务表中所有的增量数据创建源增量数据块,以及根据所述源业务表中所有的增量数据在所述源业务表中的位置,获取所述目标业务表对应位置上所有的增量数据,同时创建目标增量数据块;
分别计算所述源增量数据块的源校验和和所述目标增量数据块的目标校验和,以及根据所述源校验和和所述目标校验和的大小关系,确定所述源业务表和所述目标业务表的一致性。
9.根据权利要求8所述的数据库一致性校验方法,其特征在于,所述方法具体包括:
将所述源增量数据块分割为多个子源增量数据块,分别计算多个子源增量数据块的源校验和,其中,多个所述子源增量数据块具有编号;
将所述目标增量数据块按照所述子源增量数据块的编号分割为多个子目标增量数据块,分别计算多个子目标增量数据块的目标校验和,以及根据所述子源增量数据块的源校验和与对应编号的所述子目标增量数据块的校验和的大小关系,确定所述源业务表和所述目标业务表的一致性。
10.根据权利要求7所述的数据库一致性校验方法,其特征在于,在当前校验模式为非贪婪校验模式时,所述时间窗口的结束时间等于所述时间窗口的开始时间与预设时间窗口大小之和;
在当前校验模式为贪婪校验模式时,所述时间窗口的结束时间等于进行一致性校验时的当前时间戳,其中,所述当前时间戳大于等于所述时间窗口的开始时间与预设时间窗口大小之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011355273.XA CN112527894B (zh) | 2020-11-27 | 2020-11-27 | 一种数据库一致性校验方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011355273.XA CN112527894B (zh) | 2020-11-27 | 2020-11-27 | 一种数据库一致性校验方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527894A true CN112527894A (zh) | 2021-03-19 |
CN112527894B CN112527894B (zh) | 2023-04-14 |
Family
ID=74994104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011355273.XA Active CN112527894B (zh) | 2020-11-27 | 2020-11-27 | 一种数据库一致性校验方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527894B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676126A (zh) * | 2022-05-30 | 2022-06-28 | 深圳钛铂数据有限公司 | 基于数据库的数据校验方法、装置、设备及存储介质 |
CN115114344A (zh) * | 2021-11-05 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 事务处理方法、装置、计算设备及存储介质 |
EP4141694A1 (en) * | 2021-08-27 | 2023-03-01 | Basf Se | A computer implemented method for determining a data synchronization state between a source database and a target database |
CN116756162A (zh) * | 2023-06-28 | 2023-09-15 | 蝉鸣科技(西安)有限公司 | 一种保证数据一致性的方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
CN109344163A (zh) * | 2018-09-20 | 2019-02-15 | 新华三大数据技术有限公司 | 一种数据校验方法、装置和计算机可读介质 |
CN111104445A (zh) * | 2019-12-06 | 2020-05-05 | 杭州数梦工场科技有限公司 | 数据同步方法、装置及设备 |
CN111104392A (zh) * | 2019-12-12 | 2020-05-05 | 京东数字科技控股有限公司 | 一种数据库迁移方法、装置、电子设备及存储介质 |
CN111339200A (zh) * | 2020-02-28 | 2020-06-26 | 中国平安人寿保险股份有限公司 | 一种基于数据库同步的数据校验方法及数据校验系统 |
-
2020
- 2020-11-27 CN CN202011355273.XA patent/CN112527894B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
CN109344163A (zh) * | 2018-09-20 | 2019-02-15 | 新华三大数据技术有限公司 | 一种数据校验方法、装置和计算机可读介质 |
CN111104445A (zh) * | 2019-12-06 | 2020-05-05 | 杭州数梦工场科技有限公司 | 数据同步方法、装置及设备 |
CN111104392A (zh) * | 2019-12-12 | 2020-05-05 | 京东数字科技控股有限公司 | 一种数据库迁移方法、装置、电子设备及存储介质 |
CN111339200A (zh) * | 2020-02-28 | 2020-06-26 | 中国平安人寿保险股份有限公司 | 一种基于数据库同步的数据校验方法及数据校验系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4141694A1 (en) * | 2021-08-27 | 2023-03-01 | Basf Se | A computer implemented method for determining a data synchronization state between a source database and a target database |
WO2023025966A1 (en) * | 2021-08-27 | 2023-03-02 | Basf Se | A computer implemented method for determining a data synchronization state between a source database and a target database |
CN115114344A (zh) * | 2021-11-05 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 事务处理方法、装置、计算设备及存储介质 |
CN114676126A (zh) * | 2022-05-30 | 2022-06-28 | 深圳钛铂数据有限公司 | 基于数据库的数据校验方法、装置、设备及存储介质 |
CN114676126B (zh) * | 2022-05-30 | 2022-08-09 | 深圳钛铂数据有限公司 | 基于数据库的数据校验方法、装置、设备及存储介质 |
CN116756162A (zh) * | 2023-06-28 | 2023-09-15 | 蝉鸣科技(西安)有限公司 | 一种保证数据一致性的方法和系统 |
CN116756162B (zh) * | 2023-06-28 | 2024-03-12 | 蝉鸣科技(西安)有限公司 | 一种保证数据一致性的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112527894B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112527894B (zh) | 一种数据库一致性校验方法及系统 | |
CN110147411B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
US10628449B2 (en) | Method and apparatus for processing database data in distributed database system | |
CN110019140A (zh) | 数据迁移方法、装置、设备以及计算机可读存储介质 | |
CN109298978B (zh) | 一种指定位置的数据库集群的恢复方法及系统 | |
CN105550306A (zh) | 多副本数据的读写方法及系统 | |
US10466936B2 (en) | Scalable, multi-dimensional search for optimal configuration | |
CN112307124A (zh) | 数据库同步验证方法、装置、设备及存储介质 | |
CN111966747A (zh) | 数据同步方法、系统、终端设备及存储介质 | |
CN113656384B (zh) | 数据处理方法、分布式数据库系统、电子设备及存储介质 | |
CN114153809A (zh) | 基于数据库日志并行实时增量统计的方法 | |
CN115373889A (zh) | 数据同步中的数据比对校验及数据修复的方法及装置 | |
CN112256674A (zh) | 一种数据迁移方法、装置、电子设备和存储介质 | |
CN115129704A (zh) | 迁移数据校验方法及其系统、电子设备、存储介质 | |
CN106021657B (zh) | 输电塔节点编号方法及装置 | |
CN115757083A (zh) | 一种分布式数据库检测方法及装置 | |
Nakamura et al. | Content-defined merkle trees for efficient container delivery | |
CN113157715A (zh) | 纠删码数据中心机架协同更新方法 | |
CN114510534B (zh) | 数据同步方法、装置、设备及存储介质 | |
CN115017133B (zh) | 一种基于文件的异构数据库数据一致性校验方法 | |
CN114089979A (zh) | 持久层代码更新方法、系统、终端设备及计算机存储介质 | |
CN115599858A (zh) | 数据库同步方法、装置、设备及介质 | |
JP2010257226A (ja) | 情報処理装置、情報処理方法、プログラムおよび記録媒体 | |
CN117992545A (zh) | 物料清单的数据同步校验方法、系统以及可读存储介质 | |
CN112835909A (zh) | 数据核对方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |