CN108153619A - 一种数据校对方法和装置 - Google Patents
一种数据校对方法和装置 Download PDFInfo
- Publication number
- CN108153619A CN108153619A CN201711419943.8A CN201711419943A CN108153619A CN 108153619 A CN108153619 A CN 108153619A CN 201711419943 A CN201711419943 A CN 201711419943A CN 108153619 A CN108153619 A CN 108153619A
- Authority
- CN
- China
- Prior art keywords
- data
- major key
- base recording
- backup
- check
- 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.)
- Withdrawn
Links
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据校对方法和装置,发明旨在克服现有技术中主数据和备份数据校对的不足之处,以解决现有技术中因为同步延迟而导致的一致性校验的结果不准确的技术问题,达到了提高主数据库和备份数据库校验准确性的技术效果。所述方法包括以下步骤:以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。
Description
技术领域
本发明涉及数据技术领域,尤其涉及一种数据校对方法和装置。
背景技术
目前大型互联网平台都需要架构数据库主从集群,其中备份数据库是一个或多个较为有效的解决方案就是建立MySQL主从集群,其中,备份数据库(又称为备用数据库或者是备库)是主数据库(又称为主库)的完全镜像。对于写请求仅在主库上进行,读请求会均衡分布到所有的数据库上,这样就使得整个数据库集群可以提供更大容量的读写服务。如果MySQL主库接收到新增或者是变更数据,就通过同步工具,将这些新增或者是变更的数据实时同步到备库。
因此为确保主数据库和备份数据库一致性,需要对主备份数据库中数据进行校对,需要满足在不中断数据写入的情况下,提高校对效率和实时性。
发明内容
本发明旨在克服现有技术中主数据和备份数据校对的不足之处,以解决现有技术中因为同步延迟而导致的一致性校验的结果不准确的技术问题,达到了提高主数据库和备份数据库校验准确性的技术效果,提供一种数据校对方法和装置。
为实现上述目的,本发明采用以下技术方案:
本发明实施例提供一种数据校对方法,所述方法包括以下步骤:
以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;
校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;
重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;
执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。
本发明实施例同时提供一种数据校对装置,所述装置包括:
查询模块,以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;
更新模块,校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;
校对模块,重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;
判断模块,执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。
在本申请中,以校对列表作为一个中间量以及跟踪对象,多次比对主、备份数据库中的数据,将校对列表中存有的但当前在主、备份数据库中恢复一致的主键记录逐次筛除,从而有效解决了相关技术中因为同步延迟而导致的一致性校验的结果不准确的技术问题,达到了提高主备份数据库校验准确性的技术效果。
此外,在本申请中,通过对数据库中的数据记录的划分,以生成并行的多个任务进行扫描,以及进行后续的一致性校验的步骤,从而达到了缩短校验时间的技术效果,实现了对处理能力的有效利用,从而满足了在一致性校验中不锁库、不锁表、不停止对外服务的要求,实现了在数据库和数据表处于正常的读写状态时进行动态检测的效果。
附图说明
图1为本发明实施例提供的数据校对装置的结构框图。
图2为本发明实施例提供的数据校对装置的一种优选结构框图。
图3为本发明实施例提供的数据校对装置的一种优选结构框图。
图4为本发明实施例提供的数据校对方法的流程图。
图5为本发明实施例提供的数据校对方法的一种优选流程图。
图6为本发明实施例提供的数据校对方法的一种优选流程图。
图7为本发明实施例提供的数据校对方法的一种优选流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步描述。
本优选实施例的发明构思主要可以包括:初始化校对列表;对校对列表进行预定次数的更新操作;在完成上述预定次数的更新操作后,如果校对列表仍不为空,则表明该校对列表对应的主备份数据库的数据库不一致。其中,该校对列表中保留的是当次比较完成后确定的主数据库和备份数据库中存在差异的数据所对应的主键。
优选的,为了达到上述目的,如图1所示的数据校对装置可以包括:查询模块101、更新模块102、校对模块103和判断模块104,下面对该结构进行具体描述。
查询模块101,用于以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据。
更新模块102,用于校对主数据和备份数据,将存在差异的数据的主键插入校对列表中。
校对模块103,用于重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除。
判断模块104,执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。
校对列表,作为在本申请技术方案中提出的概念之一,用于表示一种主键的集合。可选地,在本申请实施例中,作为这种主键集合的具体实现,其形式可以是主键所唯一对应的键值的集合,存储于一个列表中,以便在服务器中执行进一步的扫描、检索等读写操作以及排序、比对等运算操作。
校对列表主要用于存储存在差异的主备份数据库记录所对应的主键。然而在本申请实施例中,校对列表并非静态,其中存储的主键可以在一次更新操作中继续存留,也可以被移除,而更新后的校对列表可以送入新的一次更新操作中,也可以输出至判断模块中以得出主备份数据库一致性的校验结果,从而可以通过对初始的校对列表的多次更新,逐步排除因主备份数据库同步延迟而导致的一致性判断的误判因素,继而缩小判定的范围,最终实现准确确定一次完整的校验周期内主备份数据库中存在差异的数据库记录的位置,并可以将这些位置输出为校验报告,以便查看或进一步的处理。
可选地,在更新模块执行的一次操作中,可以根据该次操作开始阶段的差异主键列表中所记录的第一组主键,分别在主数据库及备份数据库中,检索出与第一组主键相对应的数据库记录,并分别用主数据库记录集以及备份数据库记录集来表示,然后可以在主数据库记录集以及备份数据库记录集之间进行对比,找出其中存在差异的部分所对应的第二组主键,并在校对列表中用第二组主键替换第一组主键,然后结束本次操作,从而完成一次对校对列表的更新。
值得注意的是,第一组主键中主键的数量可以为一个或多个,也可以为零,第二组主键可以包括第一组主键中的一个或多个,也可以不包括其中的任何一个;第二组主键是第一组主键的一个子集。另一方面,第二组主键的确定可以在上述对比过程中进行,也可以在上述对比过程结束后进行。此外,上述用第二组主键替换第一组主键的描述应当理解为对于本申请实施例的一种描述,并不会对本申请构成任何限定,例如,更新模块还可以用于执行以下操作以实现上述效果:1)在第一主键组中获取第三主键组,其中,第三主键组在主数据库与备份数据库中所对应的数据库记录内容一致;2)将第三主键组从校对列表中删除。
在上述场景下,通过对校对列表中数量有限的主键及其所对应的数据库记录、而非整个主、备份数据库的处理,可以减少对主备份数据库进行一致性校验的单个检测周期的耗时,从而为数据库及其所在系统在不停止对外服务的情况下进行主备份数据库的一致性的动态校验提供了技术基础。另一方面,由于单次检测耗时的缩短,提高了主备份数据库一致性校验的时效性,降低了由于时延而导致的一致性判断的错误率,从而提高了校验结果的准确性。
进一步地,上述更新模块执行的一次操作可以再次执行:在新的一次操作中,开始阶段的校对列表中所记录的主键为第二组主键,其后,分别在主数据库及备份数据库中检索出与第二组主键相对应的数据库记录,找出其中存在差异的部分所对应的第四组主键,并在校对列表中用第四组主键替换第二组主键,然后结束本次操作,从而完成又一次对差异主键列表的更新。
在上述场景下,基于上述两次操作后所得到的校对列表中记录的差异主键即第四主键组,通过判断模块执行的判断操作所得到的主备份数据库一致性判断的结果具有更高的可信度以及更低的误判率,其主要原理详述如下:
设想服务器在第一时刻对主数据库中的某一主键所对应的数据库记录做出了修改,且作为与该修改的同步的修复动作,服务器在第二时刻对备份数据库中该主键所对应的数据库记录做出了对应的修改,而在上述更新模块执行的一次操作中,对差异主键即第二组主键的获取在第一时刻和第二时刻之间完成,则与更改的数据库记录相对应的该主键将被记入第二组主键中,即便随后在第二时刻该主键所对应的主备份数据库记录实现了同步,从而出现延时导致的一致性的错误判断。然而这一错误可以通过在预设时间之后进行的上述第二次操作来消除,例如,将第二次操作中差异主键即第四组主键的获取设置在第二时刻后完成,则上述与更改的数据库记录相对应的主键将不会被记入到第四组主键中,从而通过判断模块得到的主备份数据库一致性判断的结果具有更高的可信度以及更低的误判率。
更进一步地,上述更新模块执行的一次操作还可以重复执行N次,以获得更高的可信度以及更低的误判率。例如,对于线上数据延时的时间在1秒左右的情况,如果默认配置为每隔5秒对差异数据重复校验一次,默认进行8轮校验。则只有非常极端的情况,才会出现这8次校验中的每次校验该条数据都变更过,且刚好主从同步还没完成,那么这些数据就会被误判为不一致数据。然而,这种情况在生产环境发生的概率极小,并且用户可以根据输出的差异数据报告,再次手工反查主备份数据库中的数据。因此,通过本申请上述的发明构思在实际生产实践过程中,校验结果具有很高的可信度和很低的误判率。
可选地,在判断模块判断不一致后也就确定了主备份数据库之间的不一致,这样就可以采用一定的方式对主备份数据库的数据进行更新以实现两个数据库中数据的同步。
在一个优选实施方式中,如图2所示,上述主备份数据库一致性的动态校验装置还可以包括:
修复模块105,与判断模块耦合,用于在判断出主数据库与备份数据库不一致之后,执行数据修复操作,其中,上述数据修复操作包括:从执行完N次上述步骤之后得到的校对列表中查找同时被主数据库和备份数据库中的数据库记录包含的主键,记为第一主键类型的主键,使用主数据库中与类型为第一主键类型的主键对应的数据库记录覆盖备份数据库中与第一主键类型对应的数据库记录;从执行完N次上述步骤之后得到的校对列表中查找被主数据库中的数据库记录包含的、但没有被备份数据库中的数据库记录包含的主键,记为第二主键类型的主键,将主数据库中与第二主键类型的主键对应的数据库记录复制到备份数据库中;从执行完N次上述步骤之后得到的校对列表中查找被备份数据库中的数据库记录包含的、但没有被主数据库中的数据库记录包含的主键,记为第三主键类型,并从备份数据库中删除与第三主键类型的主键对应的数据库记录。
在上述优选实施方式中,以校对列表作为一个中间量以及跟踪对象,多次比对主、备份数据库中的数据,将校对列表中存有的但当前在主、备份数据库中恢复一致的主键记录逐次筛除,从而有效解决了相关技术中因为同步延迟而导致的一致性校验的结果不准确的技术问题,达到了提高主备份数据库校验准确性的技术效果。
在一个优选实施方式中,如图3所示,上述主备份数据库一致性的动态校验装置还可以包括:
初始化模块106,与更新模块耦合,用于在重复执行上述步骤N次之前,生成校对列表的初始值,其中,生成初始化的校对列表包括:并行地执行任务队列中的多个任务来扫描主数据库和备份数据库中的数据库记录,以获得校对列表的初始值,其中,每个任务包括以下操作,其中,任务最小键值的初始值为主数据库中被检测数据表的所有数据库记录对应的主键中的最小值:在主数据库中从与任务最小键值对应的数据库记录开始按主键从小到大的顺序扫描预定行数的数据库记录,将主数据库中当前扫描到的数据库记录记录为当前主数据库记录集,获取当前主数据库记录集中的数据库记录所对应的主键中的最大值作为任务最大键值;创建下一个任务,将任务最大键值作为下一个任务的任务最小键值,并将创建的下一个任务放入任务队列中;在备份数据库中扫描与值在范围[任务最小键值,任务最大键值)内的主键对应的数据库记录,将备份数据库中当前扫描到的数据库记录记录为当前从数据库记录集;若同一主键在当前主数据库记录集中对应的数据库记录与在当前备份数据库记录集中对应的数据库记录不同,则将该主键记录为校对列表的初始值成员;若同一主键在当前主数据库记录集中存在对应的数据库记录、而在当前备份数据库记录集中不存在对应的数据库记录,则将该主键记录为校对列表的初始值成员;若同一主键在当前备份数据库记录集中存在对应的数据库记录、而在当前主数据库记录集中不存在对应的数据库记录,则将该主键记录为校对列表的初始值成员;将校对列表的初始值成员构成的集合存储在一个列表中,以构成校对列表的初始值。
在上述初始化模块106所执行的操作中,通过对计算机任务的生成、派发以及执行,实现了对校对列表的初始化。可选地,可以在执行该任务前对主数据库进行排序,例如,按与之对应的主键的键值大小依次排列,进而,可以从中获取键值最小的一个主键,记为最小键值以及最小主键。该最小键值可以作为执行参数,与预定的扫描行数一并输入到任务中,从而可以以最小主键为起始,执行对该预定行数内的主数据库记录的扫描,将与之对应的主键中键值最大的一个记为最大主键,并对键值在最小主键和最大键值之间的全部主键所分别对应的主、备份数据库记录进行对比,将其中存在差异的部分所对应的主键记为校对列表的初始值。进一步地,还可以将上一个任务得到的最大键值发送到下一个任务中作为新的最小键值,以实现针对全数据库的分段并行初始化。
如图4所示,本发明实施例提供一种数据校对方法,所述方法包括以下步骤:
S401以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;
S402校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;
S403重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;
S404执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。
通过对数据库中的数据记录的划分,以生成并行的多个任务进行扫描,以及进行后续的一致性校验的步骤,从而达到了缩短校验时间的技术效果,实现了对处理能力的有效利用,从而满足了在一致性校验中不锁库、不锁表、不停止对外服务的要求,实现了在数据库和数据表处于正常的读写状态时进行动态检测的效果。
在另一优选的实施例中,如图5所示,校对主数据和备份数据,将存在差异的数据的主键插入校对列表中的步骤,进一步包括:
S501若同一主键在所述主数据库记录集中对应的数据库记录与在所述备份数据库记录集中对应的数据库记录不同,则将该主键记录为所述存在差异的数据库记录所对应的主键;
S502若同一主键在所述主数据库记录集中存在对应的数据库记录、而在所述备份数据库记录集中不存在对应的数据库记录,则将该主键记录为所述存在差异的数据库记录所对应的主键;
S503若同一主键在所述备份数据库记录集中存在对应的数据库记录、而在所述主数据库记录集中不存在对应的数据库记录,则将该主键记录为所述存在差异的数据库记录所对应的主键。
在另一优选的实施例中,如图6所示,判断所述主数据源和备份数据源不一致之后,还包括如下步骤:
执行数据修复操作,其中,所述数据修复操作包括:
S601从执行完N次所述步骤之后得到的所述校对列表中查找同时被所述主数据库和所述备份数据库中的数据库记录包含的主键,记为第一主键类型的主键,使用所述主数据库中与类型为所述第一主键类型的主键对应的数据库记录覆盖所述备份数据库中与所述第一主键类型对应的数据库记录;
S602从执行完N次所述步骤之后得到的所述校对列表中查找被所述主数据库中的数据库记录包含的、但没有被所述备份数据库中的数据库记录包含的主键,记为第二主键类型的主键,将所述主数据库中与所述第二主键类型的主键对应的数据库记录复制到所述备份数据库中;
S603从执行完N次所述步骤之后得到的所述校对列表中查找被所述备份数据库中的数据库记录包含的、但没有被所述主数据库中的数据库记录包含的主键,记为第三主键类型,并从所述备份数据库中删除与所述第三主键类型的主键对应的数据库记录。
在另一优选的实施例中,如图7所示,判断所述主数据源和备份数据源不一致之后,还包括如下步骤:
在重复执行所述步骤N次之前,还包括:
S701生成所述校对列表的初始值,其中,所述生成初始化的校对列表包括:并行地执行任务队列中的多个任务来扫描所述主数据库和所述备份数据库中的数据库记录,以获得所述校对列表的初始值,其中,每个所述任务包括以下操作,其中,任务最小键值的初始值为所述主数据库中被检测数据表的所有数据库记录对应的主键中的最小值:
S702在所述主数据库中从与所述任务最小键值对应的数据库记录开始按主键从小到大的顺序扫描预定行数的数据库记录,将所述主数据库中当前扫描到的数据库记录记录为当前主数据库记录集,获取所述当前主数据库记录集中的数据库记录所对应的主键中的最大值作为任务最大键值,创建下一个任务,将所述任务最大键值作为所述下一个任务的任务最小键值,并将创建的所述下一个任务放入所述任务队列中;
S703在所述备份数据库中扫描与值在范围[所述任务最小键值,所述任务最大键值)内的主键对应的数据库记录,将所述备份数据库中当前扫描到的数据库记录记录为当前备份数据库记录集;
S704若同一主键在所述当前主数据库记录集中对应的数据库记录与在所述当前备份数据库记录集中对应的数据库记录不同,则将该主键记录为所述校对列表的初始值成员;
S705若同一主键在所述当前主数据库记录集中存在对应的数据库记录、而在所述当前从数据库记录集中不存在对应的数据库记录,则将该主键记录为所述校对列表的初始值成员;
S706若同一主键在所述当前备份数据库记录集中存在对应的数据库记录、而在所述当前主数据库记录集中不存在对应的数据库记录,则将该主键记录为所述校对列表的初始值成员;
S707将所述校对列表的初始值成员构成的集合存储在一个列表中,以构成所述校对列表的初始值。
在上述步骤中,通过对计算机任务的生成、派发以及执行,实现了对校对列表的初始化。可选地,可以在执行该任务前对主数据库被检测数据表的主键进行排序,例如,按与之对应的主键的键值大小依次排列,进而,可以从中获取键值最小的一个主键,记为最小键值以及最小主键。该最小键值可以作为执行参数,与预定的扫描行数一并输入到任务中,从而可以以最小主键为起始,按主键从小到大的顺序,执行对该预定行数内的主数据库记录的扫描,将与之对应的主键中键值最大的一个记为该任务的最大主键,并对键值在最小主键和最大键值之间的全部主键所分别对应的主、备份数据库记录进行对比,将其中存在差异的部分所对应的主键记为校对列表的初始值。进一步地,还可以将上一个任务得到的最大键值发送到下一个任务中作为新的最小键值,以实现针对全数据库的分段初始化。
Claims (7)
1.一种数据校对方法,其特征是,所述方法包括以下步骤:
以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;
校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;
重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;
执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。
2.根据权利要求1所述的一种数据校对方法,其特征是,校对主数据和备份数据,将存在差异的数据的主键插入校对列表中的步骤,包括
若同一主键在所述主数据库记录集中对应的数据库记录与在所述备份数据库记录集中对应的数据库记录不同,则将该主键记录为所述存在差异的数据库记录所对应的主键;
若同一主键在所述主数据库记录集中存在对应的数据库记录、而在所述备份数据库记录集中不存在对应的数据库记录,则将该主键记录为所述存在差异的数据库记录所对应的主键;
若同一主键在所述备份数据库记录集中存在对应的数据库记录、而在所述主数据库记录集中不存在对应的数据库记录,则将该主键记录为所述存在差异的数据库记录所对应的主键。
3.根据权利要求1所述的一种数据校对方法,其特征是,判断所述主数据源和备份数据源不一致之后,还包括:执行数据修复操作,其中,所述数据修复操作包括:
从执行完N次所述步骤之后得到的所述校对列表中查找同时被所述主数据库和所述备份数据库中的数据库记录包含的主键,记为第一主键类型的主键,使用所述主数据库中与类型为所述第一主键类型的主键对应的数据库记录覆盖所述备份数据库中与所述第一主键类型对应的数据库记录;
从执行完N次所述步骤之后得到的所述校对列表中查找被所述主数据库中的数据库记录包含的、但没有被所述备份数据库中的数据库记录包含的主键,记为第二主键类型的主键,将所述主数据库中与所述第二主键类型的主键对应的数据库记录复制到所述备份数据库中;
从执行完N次所述步骤之后得到的所述校对列表中查找被所述备份数据库中的数据库记录包含的、但没有被所述主数据库中的数据库记录包含的主键,记为第三主键类型,并从所述备份数据库中删除与所述第三主键类型的主键对应的数据库记录。
4.根据权利要求1所述的一种数据校对方法,其特征是,在重复执行所述步骤N次之前,还包括:
生成所述校对列表的初始值,其中,所述生成初始化的校对列表包括:并行地执行任务队列中的多个任务来扫描所述主数据库和所述备份数据库中的数据库记录,以获得所述校对列表的初始值,其中,每个所述任务包括以下操作,其中,任务最小键值的初始值为所述主数据库中被检测数据表的所有数据库记录对应的主键中的最小值:
在所述主数据库中从与所述任务最小键值对应的数据库记录开始按主键从小到大的顺序扫描预定行数的数据库记录,将所述主数据库中当前扫描到的数据库记录记录为当前主数据库记录集,获取所述当前主数据库记录集中的数据库记录所对应的主键中的最大值作为任务最大键值,创建下一个任务,将所述任务最大键值作为所述下一个任务的任务最小键值,并将创建的所述下一个任务放入所述任务队列中;
在所述备份数据库中扫描与值在范围[所述任务最小键值,所述任务最大键值)内的主键对应的数据库记录,将所述备份数据库中当前扫描到的数据库记录记录为当前备份数据库记录集;
若同一主键在所述当前主数据库记录集中对应的数据库记录与在所述当前备份数据库记录集中对应的数据库记录不同,则将该主键记录为所述校对列表的初始值成员;
若同一主键在所述当前主数据库记录集中存在对应的数据库记录、而在所述当前从数据库记录集中不存在对应的数据库记录,则将该主键记录为所述校对列表的初始值成员;
若同一主键在所述当前备份数据库记录集中存在对应的数据库记录、而在所述当前主数据库记录集中不存在对应的数据库记录,则将该主键记录为所述校对列表的初始值成员;
将所述校对列表的初始值成员构成的集合存储在一个列表中,以构成所述校对列表的初始值。
5.一种数据校对装置,其特征在于,包括:
查询模块,以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;
更新模块,校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;
校对模块,重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;
判断模块,执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。
6.根据权利要求5所述的数据校对装置,其特征在于,还包括:
修复模块,用于在判断出所述主数据库与所述备份数据库不一致之后,执行数据修复操作,其中,所述数据修复操作包括:从执行完N次所述步骤之后得到的所述差异主键列表中查找同时被所述主数据库和所述备份数据库中的数据库记录包含的主键,记为第一主键类型的主键,使用所述主数据库中与类型为所述第一主键类型的主键对应的数据库记录覆盖所述备份数据库中与所述第一主键类型对应的数据库记录;从执行完N次所述步骤之后得到的所述校对列表中查找被所述主数据库中的数据库记录包含的、但没有被所述备份数据库中的数据库记录包含的主键,记为第二主键类型的主键,将所述主数据库中与所述第二主键类型的主键对应的数据库记录复制到所述备份数据库中;从执行完N次所述步骤之后得到的所述校对列表中查找被所述备份数据库中的数据库记录包含的、但没有被所述主数据库中的数据库记录包含的主键,记为第三主键类型,并从所述备份数据库中删除与所述第三主键类型的主键对应的数据库记录。
7.根据权利要求5所述的数据校对装置,其特征在于,还包括:
初始化模块,用于在重复执行所述步骤N次之前,生成所述校对列表的初始值,其中,所述生成初始化的校对列表包括:并行地执行任务队列中的多个任务来扫描所述主数据库和所述备份数据库中的数据库记录,以获得所述校对列表的初始值,其中,每个所述任务包括以下操作,其中,任务最小键值的初始值为所述主数据库中被检测数据表的所有数据库记录对应的主键中的最小值:在所述主数据库中从与所述任务最小键值对应的数据库记录开始按主键从小到大的顺序扫描预定行数的数据库记录,将所述主数据库中当前扫描到的数据库记录记录为当前主数据库记录集,获取所述当前主数据库记录集中的数据库记录所对应的主键中的最大值作为任务最大键值,创建下一个任务,将所述任务最大键值作为所述下一个任务的任务最小键值,并将创建的所述下一个任务放入所述任务队列中;在所述备份数据库中扫描与值在范围[所述任务最小键值,所述任务最大键值)内的主键对应的数据库记录,将所述备份数据库中当前扫描到的数据库记录记录为当前备份数据库记录集;若同一主键在所述当前主数据库记录集中对应的数据库记录与在所述当前备份数据库记录集中对应的数据库记录不同,则将该主键记录为所述差异主键列表的初始值成员;若同一主键在所述当前主数据库记录集中存在对应的数据库记录、而在所述当前备份数据库记录集中不存在对应的数据库记录,则将该主键记录为所述校对列表的初始值成员;若同一主键在所述当前备份数据库记录集中存在对应的数据库记录、而在所述当前主数据库记录集中不存在对应的数据库记录,则将该主键记录为所述校对列表的初始值成员;将所述校对列表的初始值成员构成的集合存储在一个列表中,以构成所述校对列表的初始值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711419943.8A CN108153619A (zh) | 2017-12-25 | 2017-12-25 | 一种数据校对方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711419943.8A CN108153619A (zh) | 2017-12-25 | 2017-12-25 | 一种数据校对方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108153619A true CN108153619A (zh) | 2018-06-12 |
Family
ID=62465651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711419943.8A Withdrawn CN108153619A (zh) | 2017-12-25 | 2017-12-25 | 一种数据校对方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108153619A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515923A (zh) * | 2019-08-15 | 2019-11-29 | 福建中信网安信息科技有限公司 | 一种分布式数据库之间的数据迁移方法和系统 |
CN110990414A (zh) * | 2019-10-31 | 2020-04-10 | 口碑(上海)信息技术有限公司 | 一种数据处理方法以及装置 |
CN111949728A (zh) * | 2020-07-14 | 2020-11-17 | 北京思特奇信息技术股份有限公司 | 一种动态数据差异比对方法与系统 |
CN112347189A (zh) * | 2020-11-05 | 2021-02-09 | 江苏电力信息技术有限公司 | 基于云计算的财务数据一致性失效的发现与恢复方法 |
CN112579613A (zh) * | 2020-12-31 | 2021-03-30 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 数据库集群差异比对与数据同步的方法、系统及介质 |
CN112579591A (zh) * | 2019-09-30 | 2021-03-30 | 重庆小雨点小额贷款有限公司 | 数据校验方法、装置、电子设备及计算机可读存储介质 |
CN113297325A (zh) * | 2021-05-04 | 2021-08-24 | 西安博达软件股份有限公司 | 一种主页平台数据同步中的非授权数据预校正方法及系统 |
CN115952185A (zh) * | 2023-03-10 | 2023-04-11 | 布比(北京)网络技术有限公司 | 一种数据处理方法及装置、设备及存储介质 |
CN116150179A (zh) * | 2023-04-14 | 2023-05-23 | 天津南大通用数据技术股份有限公司 | 一种数据库间的数据一致性比对方法及装置 |
-
2017
- 2017-12-25 CN CN201711419943.8A patent/CN108153619A/zh not_active Withdrawn
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515923A (zh) * | 2019-08-15 | 2019-11-29 | 福建中信网安信息科技有限公司 | 一种分布式数据库之间的数据迁移方法和系统 |
CN110515923B (zh) * | 2019-08-15 | 2022-12-06 | 福建中信网安信息科技有限公司 | 一种分布式数据库之间的数据迁移方法和系统 |
CN112579591A (zh) * | 2019-09-30 | 2021-03-30 | 重庆小雨点小额贷款有限公司 | 数据校验方法、装置、电子设备及计算机可读存储介质 |
CN110990414A (zh) * | 2019-10-31 | 2020-04-10 | 口碑(上海)信息技术有限公司 | 一种数据处理方法以及装置 |
CN110990414B (zh) * | 2019-10-31 | 2023-06-16 | 口碑(上海)信息技术有限公司 | 一种数据处理方法以及装置 |
CN111949728A (zh) * | 2020-07-14 | 2020-11-17 | 北京思特奇信息技术股份有限公司 | 一种动态数据差异比对方法与系统 |
CN112347189A (zh) * | 2020-11-05 | 2021-02-09 | 江苏电力信息技术有限公司 | 基于云计算的财务数据一致性失效的发现与恢复方法 |
CN112579613A (zh) * | 2020-12-31 | 2021-03-30 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 数据库集群差异比对与数据同步的方法、系统及介质 |
CN112579613B (zh) * | 2020-12-31 | 2023-02-17 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 数据库集群差异比对与数据同步的方法、系统及介质 |
CN113297325A (zh) * | 2021-05-04 | 2021-08-24 | 西安博达软件股份有限公司 | 一种主页平台数据同步中的非授权数据预校正方法及系统 |
CN115952185A (zh) * | 2023-03-10 | 2023-04-11 | 布比(北京)网络技术有限公司 | 一种数据处理方法及装置、设备及存储介质 |
CN116150179A (zh) * | 2023-04-14 | 2023-05-23 | 天津南大通用数据技术股份有限公司 | 一种数据库间的数据一致性比对方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153619A (zh) | 一种数据校对方法和装置 | |
CN104252481B (zh) | 主从数据库一致性的动态校验方法和装置 | |
US11163744B2 (en) | Test data generation and scale up for database testing using unique common factor sequencing | |
CN108241555A (zh) | 一种分布式数据库的备份、恢复方法、装置和服务器 | |
CN111639082B (zh) | 基于Ceph的十亿级节点规模知识图谱的对象存储管理方法及系统 | |
CN105989194A (zh) | 表数据比较的方法和系统 | |
CN107003935A (zh) | 优化数据库去重 | |
CN109558411A (zh) | 一种基于区块链数据的下链同步方法及装置 | |
CN110321383A (zh) | 大数据平台数据同步方法、装置、计算机设备及存储介质 | |
CN107832383B (zh) | 一种跨机房数据库的数据一致性校验方法 | |
CN110597835B (zh) | 一种基于区块链的交易数据删除方法及装置 | |
CN109298978B (zh) | 一种指定位置的数据库集群的恢复方法及系统 | |
CN101356527A (zh) | 通过节点编号的文件系统转储/恢复 | |
CN108415846A (zh) | 一种生成最小自动化测试用例集的方法和装置 | |
CN108369588A (zh) | 数据库级别自动存储管理 | |
CN107958023A (zh) | 数据同步方法、数据同步装置和计算机可读存储介质 | |
CN108140022B (zh) | 数据查询方法和数据库系统 | |
CN106844694B (zh) | 用于同步数据的方法及设备 | |
CN104636401A (zh) | 一种scada系统数据回滚的方法及装置 | |
CN109947730A (zh) | 元数据恢复方法、装置、分布式文件系统及可读存储介质 | |
CN112417043A (zh) | 数据处理系统及方法 | |
CN106980514B (zh) | 配置数据的更新方法和装置 | |
CN112612852B (zh) | 数据同步方法及装置、电子设备、存储介质 | |
US11151157B2 (en) | Database management method | |
JP5069525B2 (ja) | データ処理システム |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180612 |
|
WW01 | Invention patent application withdrawn after publication |