【技术实现步骤摘要】
一种数据校对方法和装置
本专利技术涉及数据
,尤其涉及一种数据校对方法和装置。
技术介绍
目前大型互联网平台都需要架构数据库主从集群,其中备份数据库是一个或多个较为有效的解决方案就是建立MySQL主从集群,其中,备份数据库(又称为备用数据库或者是备库)是主数据库(又称为主库)的完全镜像。对于写请求仅在主库上进行,读请求会均衡分布到所有的数据库上,这样就使得整个数据库集群可以提供更大容量的读写服务。如果MySQL主库接收到新增或者是变更数据,就通过同步工具,将这些新增或者是变更的数据实时同步到备库。因此为确保主数据库和备份数据库一致性,需要对主备份数据库中数据进行校对,需要满足在不中断数据写入的情况下,提高校对效率和实时性。
技术实现思路
本专利技术旨在克服现有技术中主数据和备份数据校对的不足之处,以解决现有技术中因为同步延迟而导致的一致性校验的结果不准确的技术问题,达到了提高主数据库和备份数据库校验准确性的技术效果,提供一种数据校对方法和装置。为实现上述目的,本专利技术采用以下技术方案:本专利技术实施例提供一种数据校对方法,所述方法包括以下步骤:以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数 ...
【技术保护点】
一种数据校对方法,其特征是,所述方法包括以下步骤:以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。
【技术特征摘要】
1.一种数据校对方法,其特征是,所述方法包括以下步骤:以相同查询条件查询主数据源中的主数据和备份数据源中的备份数据;校对主数据和备份数据,将存在差异的数据的主键插入校对列表中;重复执行以下步骤N次,其中,N为预先设定的自然数,根据校对列表中的主键去查询主数据源的主数据和备份数据源的备份数据,若某一主键的对应的主数据和备份数据相同,则将所述主键从校对列表中删除;执行完N次所述步骤之后,若所述校对列表中仍有主键,则判断所述主数据源和备份数据源不一致,否则,则判断所述主数据源和备份数据源一致。2.根据权利要求1所述的一种数据校对方法,其特征是,校对主数据和备份数据,将存在差异的数据的主键插入校对列表中的步骤,包括若同一主键在所述主数据库记录集中对应的数据库记录与在所述备份数据库记录集中对应的数据库记录不同,则将该主键记录为所述存在差异的数据库记录所对应的主键;若同一主键在所述主数据库记录集中存在对应的数据库记录、而在所述备份数据库记录集中不存在对应的数据库记录,则将该主键记录为所述存在差异的数据库记录所对应的主键;若同一主键在所述备份数据库记录集中存在对应的数据库记录、而在所述主数据库记录集中不存在对应的数据库记录,则将该主键记录为所述存在差异的数据库记录所对应的主键。3.根据权利要求1所述的一种数据校对方法,其特征是,判断所述主数据源和备份数据源不一致之后,还包括:执行数据修复操作,其中,所述数据修复操作包括:从执行完N次所述步骤之后得到的所述校对列表中查找同时被所述主数据库和所述备份数据库中的数据库记录包含的主键,记为第一主键类型的主键,使用所述主数据库中与类型为所述第一主键类型的主键对应的数据库记录覆盖所述备份数据库中与所述第一主键类型对应的数据库记录;从执行完N次所述步骤之后得到的所述校对列表中查找被所述主数据库中的数据库记录包含的、但没有被所述备份数据库中的数据库记录包含的主键,记为第二主键类型的主键,将所述主数据库中与所述第二主键类型的主键对应的数据库记录复制到所述备份数据库中;从执行完N次所述步骤之后得到的所述校对列表中查找被所述备份数据库中的数据库记录包含的、但没有被所述主数据库中的数据库记录包含的主键,记为第三主键类型,并从所述备份数据库中删除与所述第三主键类型的主键对应的数据库记录。4.根据权利要求1所述的一种数据校对方法,其特征是,在重复执行所述步骤N次之前,还包括:生成所述校对列表的初始值,其中,所述生成初始化的校对列表包括:并行地执行任务队列中的多个任务来扫描所述主数据库和所述备份数据库中的数据库记录,以获得所述校对列表的初始值,其中,每个所述任务包括以下操作,其中,任务最小键值的初始值为所述主数据库中被检测数据表的所有数据库记录对应的主键中的最小值:在所述主数据库中从与所述任务最小键值对应的数据库记录开始按主键从小到大的顺序扫描预定行数的数据库记录,将所述主数据库中当前扫描到的数据库记录记录为当前主数据库记录集,获取所述当前主数据库记录集中的数据库记录所对应的主键中的最大值作为任务最大键值,创建下一个任务,将所述任务最大键值作为所述下一个任务的任务最小键值,并将创建的所述下一个任务放入所述任务队列中;在所述备份数据库中扫描与值在范围[所述任务最小键值,所述任务最大键值)内的主键对应的数据库记录,将所述备份数据库中当前扫描到的数据库记录记录为当前备份数据库记录集;若同一主键在所述当前主数据库记录集中对应的数据库记录与在所述当前备份数据库记录集中对应的数据库记录不同,则将该主键记录为所述校对列表的初始值成员;若同一主键在所述当前主数据库记录集中存在对应的数据库记录、而在所述当前从数据库记录集中不存在对应的数据库记录,则将该主键记录为所...
【专利技术属性】
技术研发人员:陈震,
申请(专利权)人:杭州恩牛网络技术有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。