主、备数据库记录一致性校验方法及系统.pdf

上传人:62****3 文档编号:974758 上传时间:2018-03-22 格式:PDF 页数:10 大小:402.79KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110281043.8

申请日:

2011.09.21

公开号:

CN102354292A

公开日:

2012.02.15

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 11/08申请公布日:20120215|||实质审查的生效IPC(主分类):G06F 11/08申请日:20110921|||公开

IPC分类号:

G06F11/08; G06F17/30

主分类号:

G06F11/08

申请人:

国家计算机网络与信息安全管理中心

发明人:

徐倩华; 夏光升; 马捷; 李小标; 张鸿; 郝振江; 樊冬进

地址:

100029 北京市朝阳区裕民路甲3号

优先权:

专利代理机构:

工业和信息化部电子专利中心 11010

代理人:

肖伟先

PDF下载: PDF下载
内容摘要

本发明公开了一种主、备数据库记录一致性校验方法,包括如下步骤:在数据备份之前,对每条记录增加标识码字段和校验码字段,其中标识码字段是对记录的编号,校验码字段用于标识记录值的特征;在考察时间段内,将记录分成M个分片,并且对每个分片计算校验码,M为自然数;逐个对主、备数据库中对应的分片进行一致性检验;如果校验通过,则判定该分片内的记录一致,如果校验不通过,则再对该分片中的记录逐个进行一致性校验,以找出不一致的记录。采用本发明方法,不仅校验准确,而且校验效率较高,并具有技术方案简单,成本低等优点。本发明还相应公开了一种主、备数据库记录一致性校验系统,包括字段增加模块、分片模块和一致性校验模块。

权利要求书

1: 一种主、 备数据库记录一致性校验方法, 其特征在于, 包括如下步骤 : 在数据备份之前, 对每条记录增加标识码字段和校验码字段, 其中标识码字段是对记 录的编号, 校验码字段标识记录值的特征 ; 在考察时间段内, 将记录分成 M 个分片, 并且对每个分片计算校验码, M 为自然数 ; 逐个对主、 备数据库中对应的分片进行一致性检验 ; 如果校验通过, 则判定该分片内的 记录一致, 如果校验不通过, 则再对该分片中的记录逐个进行一致性校验, 以找出不一致的 记录。
2: 根据权利要求 1 所述的主、 备数据库记录一致性校验方法, 其特征在于, 所述记录的 校验码字段是对记录的原有各字段进行计算得到的。
3: 根据权利要求 2 所述的主、 备数据库记录一致性校验方法, 其特征在于, 对记录的原 有各字段进行计算, 采用的算法为 HASH 算法或签名算法。
4: 根据权利要求 1 所述的主、 备数据库记录一致性校验方法, 其特征在于, 在考察时间 段内, 将记录分成 M 个分片的方法为 : 在考察时间段内, 以 N 个记录为一个分片, 对该考察时间段内生成的所有记录依次进 行分片, 最后一个分片允许不足 N 个记录, N 为自然数。
5: 根据权利要求 1 所述的主、 备数据库记录一致性校验方法, 其特征在于, 对分片计算 校验码的方法为 : 采用专门算法对该分片中各记录的校验码字段进行计算, 得到分片的校验码。
6: 根据权利要求 1 至 5 中任一项所述的主、 备数据库记录一致性校验方法, 其特征在 于, 对主、 备数据库中对应的分片进行一致性检验, 采用的方法为 : 判断主、 备数据库中对应的分片的校验值以及记录个数是否一致, 当主、 备数据库中对 应的分片的校验值以及记录个数均一致时, 一致性校验通过 ; 否则一致性校验不通过。
7: 一种主、 备数据库记录一致性校验系统, 其特征在于, 包括 : 字段增加模块, 用于在数据备份之前, 对每条记录增加标识码字段和校验码字段, 其中 标识码字段是对记录的编号, 校验码字段标识记录值的特征 ; 分片模块, 用于在考察时间段内, 将记录分成 M 个分片, 并且对每个分片计算校验码, M 为自然数 ; 一致性校验模块, 用于逐个对主、 备数据库中对应的分片进行一致性检验 ; 如果校验通 过, 则判定该分片内的记录一致, 如果校验不通过, 则再对该分片中的记录逐个进行一致性 校验, 以找出不一致的记录。
8: 根据权利要求 7 所述的主、 备数据库记录一致性校验系统, 其特征在于, 所述记录的 校验码字段是对记录的原有各字段进行计算得到的。
9: 根据权利要求 7 所述的主、 备数据库记录一致性校验系统, 其特征在于, 所述分片模 块包括分片子模块和分片校验码计算子模块 ; 其中, 所述分片子模块用于在考察时间段内, 以 N 个记录为一个分片, 对该考察时间段 内生成的所有记录依次进行分片, 最后一个分片允许不足 N 个记录, N 为自然数 ; 所述分片校验码计算子模块用于对分片中各记录的校验码字段进行计算, 可以是采用 HASH 算法进行计算, 也可以是采用签名算法或其它专门算法进行计算, 来得到该分片的校 验码。 2
10: 根据权利要求 7 或 8 或 9 所述的主、 备数据库记录一致性校验系统, 其特征在于, 所 述一致性校验模块包括第一校验子模块和第二校验子模块 ; 其中第一校验子模块用于判断主、 备数据库中对应的分片的校验值以及记录个数是否 一致, 仅当主、 备数据库中对应的分片的校验值以及记录个数均一致时, 判定主、 备数据库 中对应分片的记录一致, 其它情况判定为主、 备数据库中对应分片的记录不一致 ; 所述第二校验子模块用于, 当所述第一校验子模块判定主、 备数据库中对应分片的记 录不一致时, 对该对应分片中的记录逐个进行一致性校验, 以找出不一致的记录。

说明书


主、 备数据库记录一致性校验方法及系统

    【技术领域】
     本发明属于数据库技术领域, 尤其涉及一种主、 备数据库记录一致性校验方法及系统。 背景技术 数据库备份主要解决主数据库出现故障时的数据安全问题, 备份程序需要根据策 略将主数据库中的记录同步到备份数据库, 按照备份系统的设计, 主、 备数据库中的记录内 容应该一致。 但是实际应用时, 由于网络、 备份软件、 计算机硬件或操作系统等故障, 可能会 出现备份数据库中的记录内容与主数据库中的记录不一致的情况, 因而有必要对主、 备数 据库的记录进行检查, 以发现主、 备份数据库中不一致的记录, 并对其进行修复。
     现有技术中, 对主、 备数据库记录的一致性进行判断的方法主要有 :
     1、 比较数据库大小 : 对数据库的记录的数量进行比较, 或者对数据文件的大小进 行比较。
     2、 比较数据文件的校验码 : 对数据文件计算校验码, 并比较校验码是否一致。
     3、 比较记录的校验码 : 对每条数据库记录计算校验码, 并比较校验码是否一致。
     上述第 1 种方法, 仅比较数据库记录数量, 还不能确定记录内容是否一致 ; 上述第 2 种方法, 比较数据库记录文件, 但由于数据库在不同系统中存写文件的差异, 虽然文件不 一致, 数据记录仍然可能是一致的, 因而该方法也容易存在误判 ; 上述第 3 种方法, 比较数 据记录的校验码, 可以很好地检查主、 备数据库的记录是否一致, 但由于要计算并比较每一 条记录的校验码, 工作量很大, 严重影响系统的性能。
     因此有必要开发一种新的主、 备数据库记录一致性校验方法, 既能够准确校验主、 备数据库记录的一致性, 又能够较现有方法显著提高校验效率。
     发明内容
     本发明要解决的技术问题是针对现有技术中存在的要么校验不准确, 要么校验效 率低的问题, 提出一种校验准确, 同时校验效率较高的主、 备数据库记录一致性校验方法及 系统。
     为解决上述技术问题, 本发明主、 备数据库记录一致性校验方法包括如下步骤 :
     在数据备份之前, 对每条记录增加标识码字段和校验码字段, 其中标识码字段是 对记录的编号, 标识记录的唯一性, 校验码字段用于标识记录值的特征 ;
     在考察时间段内, 将记录分成 M 个分片, 并且对每个分片计算校验码, M 为自然数 ;
     逐个对主、 备数据库中对应的分片进行一致性检验 ; 如果校验通过, 则判定该分片 内的记录一致, 如果校验不通过, 则再对该分片中的记录逐个进行一致性校验, 以找出不一 致的记录。
     进一步地, 所述记录的校验码字段是对记录的原有各字段进行计算得到的。
     更进一步地, 对记录的原有各字段进行计算, 可以是采用 HASH 算法进行计算, 也可以是采用签名算法或其它专门算法进行计算。
     进一步地, 在考察时间段内, 将记录分成 M 个分片的方法为 :
     在考察时间段内, 以 N 个记录为一个分片, 对该考察时间段内生成的所有记录依 次进行分片, 最后一个分片允许不足 N 个记录, N 为自然数。
     进一步地, 对分片计算校验码的方法为 :
     采用专门算法对该分片中各记录的校验码字段进行计算, 来得到分片的校验码。 采用的专门算法可以是 HASH 算法, 也可以是签名算法或其它专门算法。
     进一步地, 对主、 备数据库中对应的分片进行一致性检验, 采用的方法为 :
     判断主、 备数据库中对应的分片的校验值以及记录个数是否一致, 当主、 备数据库 中对应的分片的校验值以及记录个数均一致时, 一致性校验通过 ; 否则一致性校验不通过。
     一种主、 备数据库记录一致性校验系统, 包括 :
     字段增加模块, 用于在数据备份之前, 对每条记录增加标识码字段和校验码字段, 其中标识码字段是对记录的编号, 标识记录的唯一性, 校验码字段用于标识记录值的特 征;
     分片模块, 用于在考察时间段内, 将记录分成 M 个分片, 并且对每个分片计算校验 码, M 为自然数 ;
     一致性校验模块, 用于逐个对主、 备数据库中对应的分片进行一致性检验 ; 如果校 验通过, 则判定该分片内的记录一致, 如果校验不通过, 则再对该分片中的记录逐个进行一 致性校验, 以找出不一致的记录。
     进一步地, 所述记录的校验码字段是对记录的原有各字段进行计算得到的。
     进一步地, 所述分片模块包括分片子模块和分片校验码计算子模块 ; 其中, 所述分 片子模块用于在考察时间段内, 以 N 个记录为一个分片, 对该考察时间段内生成的所有记 录依次进行分片, 最后一个分片允许不足 N 个记录, N 为自然数 ; 所述分片校验码计算子模 块用于对分片中各记录的校验码字段进行计算, 可以是采用 HASH 算法进行计算, 也可以是 采用签名算法或其它专门算法进行计算, 来得到该分片的校验码。
     进一步地, 所述一致性校验模块包括第一校验子模块和第二校验子模块 ; 其中第 一校验子模块用于判断主、 备数据库中对应的分片的校验值以及记录个数是否一致, 仅当 主、 备数据库中对应的分片的校验值以及记录个数均一致时, 判定主、 备数据库中对应分片 的记录一致, 其它情况判定为主、 备数据库中对应分片的记录不一致 ; 所述第二校验子模块 用于, 当所述第一校验子模块判定主、 备数据库中对应分片的记录不一致时, 对该对应分片 中的记录逐个进行一致性校验, 以找出不一致的记录。
     本发明的有益效果为 :
     本发明使用标识码字段标识记录, 使用校验码字段标识记录值的特征, 并且在考 察时间段内, 将记录分成 M 个分片, 为了提高一致性校验效率, 本发明将一致性校验过程划 分为两个阶段实施, 其中第一阶段校验主、 备数据库中对应分片的整体特征, 若整体特征相 符, 则认为对应分片内的记录一致, 若对应分片的整体特征不符, 则进入第二阶段, 对主、 备 数据库中该对应分片内的各记录的特征分别进行比较, 以查找出该对应分片内不一致的记 录。
     采用本发明方案能够显著提高主、 备数据库记录一致性校验的效率, 并且本发明还具有技术方案实施简便、 成本低等优点。 附图说明
     图 1 为本发明第一实施例的主、 备数据库记录一致性校验方法流程示意图 ; 图 2 为本发明第二实施例的主、 备数据库记录一致性校验系统结构示意图。具体实施方式
     下面结合附图和具体实施方式对本发明作进一步详细说明。
     本发明第一实施例提供了一种主、 备数据库记录一致性校验方法, 如图 1 所示, 该 实施例中, 本发明主、 备数据库记录一致性校验方法具体包括如下步骤 :
     步骤 101, 在数据备份之前, 对每条记录增加标识码字段和校验码字段, 其中标识 码字段即记录的编号, 用于标识记录的唯一性, 校验码字段用于标识记录值的特征。 该实施 例中, 可以单独增加一个包含这两个字段的数据表, 如表一所示。
     表一、 包含标识码字段和校验码字段的数据表
     记录的校验码字段可以是对记录的原有各字段进行计算得到的, 可以是用 HASH 算法进行计算, 也可以是用签名算法或其它专门算法进行计算。 当然, 记录的校验码字段也 可以采用其它合理的方式来得到, 只要其能够表征记录值的特征即可。
     步骤 102, 在某个考察时间段 Δt(Δt 表示起点 t1 和终端 t2 均确定的一段时间 ) 内, 将记录分成 M 个分片, 并且对每个分片计算校验码, M 为自然数。得到的分片如表二所 示, 其中记录生成时间段即上述考察时间段。
     表二、 分片示意表
     该实施例中, 在考察时间段内, 将记录分成 M 个分片的方法为 :
     在考察时间段内, 以 N 个记录为一个分片, 对该考察时间段内生成的所有记录依 次进行分片, 最后一个分片允许不足 N 个记录, 其中 N 为自然数。
     当然, 在考察时间段内, 将记录分成 M 个分片还可以采用其它方法, 并不局限于本 实施例提供的方法, 例如前 M-1 个分片的记录个数也不一定要求相等, 即不一定均为 N 个。
     该实施例中, 对分片计算校验码的方法可以为 :
     对该分片中各记录的校验码字段进行计算, 可以是采用 HASH 算法进行计算, 也可 以是采用签名算法或其它专门算法进行计算, 来得到分片的校验码。
     当然, 分片的校验码也可以采用其它合理的方式来得到, 只要其能够表征该分片 的特征即可。
     步骤 103, 逐个对主、 备数据库中对应的分片进行一致性检验 ; 如果校验通过, 则 判定该分片内的记录一致, 如果校验不通过, 则再对该分片中的记录逐个进行一致性校验,
     以找出不一致的记录。
     该实施例中, 对主、 备数据库中对应的分片进行一致性检验, 采用的方法为 :
     判断主、 备数据库中对应的分片的校验值以及记录个数是否一致, 当主、 备数据库 中对应的分片的校验值以及记录个数均一致时, 一致性校验通过 ; 否则一致性校验不通过。
     该步骤具体可以按如下方式来实现 :
     步骤 1031, 将主用数据库中某个分片的记录个数、 考察时间段 Δt、 最小记录 Rmin、 最大记录标识码 Rma 和分片校验码 VN 发送至备用数据库端。
     步骤 1032, 在备用数据库端, 根据 Δt、 Rmin 和 Rmax 查询记录, 如果 :
     1) 查询的记录个数与主用数据库端发送来的分片记录个数不一致, 则该对应的记 录分片不一致 ;
     2) 查询的记录个数与主用数据库端发送来的分片记录个数相一致, 但根据备用数 据库的该分片计算得到的分片验证码与主用数据库端发送来的对应分片的验证码 VN 不一 致, 则该对应分片的记录不一致 ;
     3) 查询的记录个数与主用数据库端发送来的分片记录个数相一致否则, 并且根据 备用数据库的该分片计算得到的分片验证码与主用数据库端发送来的对应分片的验证码 VN 相一致, 则判定主、 备数据库的该对应分片的记录一致。 对于记录不一致的对应分片记录集, 再做后续处理 :
     向主用数据库端请求该对应分片内各记录的记录标识码和记录校验码 { < Ri, Vi > |i = 1, 2, 3, ..., N}, 并以这些数据与备用数据库中的记录逐条进行比较, 直到找到有问 题的记录。
     在找到不一致的记录时, 可以从主数据库中将不一致的数据同步到备份数据库。
     本发明第二实施例提供了一种主、 备数据库记录一致性校验系统, 如图 2 所示, 该 实施例中, 本发明主、 备数据库记录一致性校验系统包括字段增加模块 201、 分片模块 202 和一致性校验模块 203。
     其中, 字段增加模块 201 用于在数据备份之前, 对每条记录增加标识码字段和校 验码字段, 其中标识码字段即记录的编号, 用于标识记录的唯一性, 校验码字段用于标识记 录值的特征。
     该实施例中, 记录的校验码字段可以是对记录的原有各字段进行计算得到的, 具 体地, 可以是用 HASH 算法进行计算, 也可以是用签名算法或其它专门算法进行计算得到 的。 当然, 记录的校验码字段也可以采用其它合理的方式来得到, 只要其能够表征记录值的 特征即可。
     分片模块 202 用于在考察时间段内, 将记录分成 M 个分片, 并且对每个分片计算校 验码, M 为自然数。
     分片模块 202 包括分片子模块 2021 和分片校验码计算子模块 2022。其中, 分片 子模块 2021 用于在考察时间段内, 以 N 个记录为一个分片, 对该考察时间段内生成的所有 记录依次进行分片, 最后一个分片允许不足 N 个记录, N 为自然数 ; 分片校验码计算子模块 2022 用于对分片中各记录的校验码字段进行计算, 可以是采用 HASH 算法进行计算, 也可以 是采用签名算法或其它专门算法进行计算, 来得到该分片的校验码。
     当然, 分片子模块 2021 在考察时间段内, 将记录分成 M 个分片还可以采用其它方
     案, 并不局限于本实施例提供的上述方案, 例如前 M-1 个分片的记录个数也不一定要求相 等, 即不一定均为 N 个。
     分片的校验码也可以采用其它合理的方式来得到, 只要其能够表征该分片的特征 即可。
     一致性校验模块 203 用于逐个对主、 备数据库中对应的分片进行一致性检验 ; 如 果校验通过, 则判定该分片内的记录一致, 如果校验不通过, 则再对该分片中的记录逐个进 行一致性校验, 以找出不一致的记录。
     一致性校验模块 203 包括第一校验子模块 2031 和第二校验子模块 2032 ; 其中第 一校验子模块 2031 用于判断主、 备数据库中对应的分片的校验值以及记录个数是否一致, 仅当主、 备数据库中对应的分片的校验值以及记录个数均一致时, 判定主、 备数据库中对应 分片的记录一致, 其它情况判定为主、 备数据库中对应分片的记录不一致 ; 第二校验子模块 2032 用于, 当第一校验子模块 2031 判定主、 备数据库中对应分片的记录不一致时, 对该对 应分片中的记录逐个进行一致性校验, 以找出不一致的记录。
     以上所述的具体实施例, 对本发明的技术方案进行了进一步详细说明, 所应注意 的是, 以上所述仅为本发明的具体实施例而已, 本领域的技术人员可以对本发明进行各种 改动和变型而不脱离本发明的精神和范围。这样, 倘若本发明的这些修改和变型属于本发 明权利要求记载的技术方案及其等同技术的范围之内, 则本发明也意图包含这些改动和变 型在内。

主、备数据库记录一致性校验方法及系统.pdf_第1页
第1页 / 共10页
主、备数据库记录一致性校验方法及系统.pdf_第2页
第2页 / 共10页
主、备数据库记录一致性校验方法及系统.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《主、备数据库记录一致性校验方法及系统.pdf》由会员分享,可在线阅读,更多相关《主、备数据库记录一致性校验方法及系统.pdf(10页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102354292A43申请公布日20120215CN102354292ACN102354292A21申请号201110281043822申请日20110921G06F11/08200601G06F17/3020060171申请人国家计算机网络与信息安全管理中心地址100029北京市朝阳区裕民路甲3号72发明人徐倩华夏光升马捷李小标张鸿郝振江樊冬进74专利代理机构工业和信息化部电子专利中心11010代理人肖伟先54发明名称主、备数据库记录一致性校验方法及系统57摘要本发明公开了一种主、备数据库记录一致性校验方法,包括如下步骤在数据备份之前,对每条记录增加标识码字段和校验码字段。

2、,其中标识码字段是对记录的编号,校验码字段用于标识记录值的特征;在考察时间段内,将记录分成M个分片,并且对每个分片计算校验码,M为自然数;逐个对主、备数据库中对应的分片进行一致性检验;如果校验通过,则判定该分片内的记录一致,如果校验不通过,则再对该分片中的记录逐个进行一致性校验,以找出不一致的记录。采用本发明方法,不仅校验准确,而且校验效率较高,并具有技术方案简单,成本低等优点。本发明还相应公开了一种主、备数据库记录一致性校验系统,包括字段增加模块、分片模块和一致性校验模块。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图2页CN102354301A1。

3、/2页21一种主、备数据库记录一致性校验方法,其特征在于,包括如下步骤在数据备份之前,对每条记录增加标识码字段和校验码字段,其中标识码字段是对记录的编号,校验码字段标识记录值的特征;在考察时间段内,将记录分成M个分片,并且对每个分片计算校验码,M为自然数;逐个对主、备数据库中对应的分片进行一致性检验;如果校验通过,则判定该分片内的记录一致,如果校验不通过,则再对该分片中的记录逐个进行一致性校验,以找出不一致的记录。2根据权利要求1所述的主、备数据库记录一致性校验方法,其特征在于,所述记录的校验码字段是对记录的原有各字段进行计算得到的。3根据权利要求2所述的主、备数据库记录一致性校验方法,其特征。

4、在于,对记录的原有各字段进行计算,采用的算法为HASH算法或签名算法。4根据权利要求1所述的主、备数据库记录一致性校验方法,其特征在于,在考察时间段内,将记录分成M个分片的方法为在考察时间段内,以N个记录为一个分片,对该考察时间段内生成的所有记录依次进行分片,最后一个分片允许不足N个记录,N为自然数。5根据权利要求1所述的主、备数据库记录一致性校验方法,其特征在于,对分片计算校验码的方法为采用专门算法对该分片中各记录的校验码字段进行计算,得到分片的校验码。6根据权利要求1至5中任一项所述的主、备数据库记录一致性校验方法,其特征在于,对主、备数据库中对应的分片进行一致性检验,采用的方法为判断主、。

5、备数据库中对应的分片的校验值以及记录个数是否一致,当主、备数据库中对应的分片的校验值以及记录个数均一致时,一致性校验通过;否则一致性校验不通过。7一种主、备数据库记录一致性校验系统,其特征在于,包括字段增加模块,用于在数据备份之前,对每条记录增加标识码字段和校验码字段,其中标识码字段是对记录的编号,校验码字段标识记录值的特征;分片模块,用于在考察时间段内,将记录分成M个分片,并且对每个分片计算校验码,M为自然数;一致性校验模块,用于逐个对主、备数据库中对应的分片进行一致性检验;如果校验通过,则判定该分片内的记录一致,如果校验不通过,则再对该分片中的记录逐个进行一致性校验,以找出不一致的记录。8。

6、根据权利要求7所述的主、备数据库记录一致性校验系统,其特征在于,所述记录的校验码字段是对记录的原有各字段进行计算得到的。9根据权利要求7所述的主、备数据库记录一致性校验系统,其特征在于,所述分片模块包括分片子模块和分片校验码计算子模块;其中,所述分片子模块用于在考察时间段内,以N个记录为一个分片,对该考察时间段内生成的所有记录依次进行分片,最后一个分片允许不足N个记录,N为自然数;所述分片校验码计算子模块用于对分片中各记录的校验码字段进行计算,可以是采用HASH算法进行计算,也可以是采用签名算法或其它专门算法进行计算,来得到该分片的校验码。权利要求书CN102354292ACN10235430。

7、1A2/2页310根据权利要求7或8或9所述的主、备数据库记录一致性校验系统,其特征在于,所述一致性校验模块包括第一校验子模块和第二校验子模块;其中第一校验子模块用于判断主、备数据库中对应的分片的校验值以及记录个数是否一致,仅当主、备数据库中对应的分片的校验值以及记录个数均一致时,判定主、备数据库中对应分片的记录一致,其它情况判定为主、备数据库中对应分片的记录不一致;所述第二校验子模块用于,当所述第一校验子模块判定主、备数据库中对应分片的记录不一致时,对该对应分片中的记录逐个进行一致性校验,以找出不一致的记录。权利要求书CN102354292ACN102354301A1/5页4主、备数据库记录。

8、一致性校验方法及系统技术领域0001本发明属于数据库技术领域,尤其涉及一种主、备数据库记录一致性校验方法及系统。背景技术0002数据库备份主要解决主数据库出现故障时的数据安全问题,备份程序需要根据策略将主数据库中的记录同步到备份数据库,按照备份系统的设计,主、备数据库中的记录内容应该一致。但是实际应用时,由于网络、备份软件、计算机硬件或操作系统等故障,可能会出现备份数据库中的记录内容与主数据库中的记录不一致的情况,因而有必要对主、备数据库的记录进行检查,以发现主、备份数据库中不一致的记录,并对其进行修复。0003现有技术中,对主、备数据库记录的一致性进行判断的方法主要有00041、比较数据库大。

9、小对数据库的记录的数量进行比较,或者对数据文件的大小进行比较。00052、比较数据文件的校验码对数据文件计算校验码,并比较校验码是否一致。00063、比较记录的校验码对每条数据库记录计算校验码,并比较校验码是否一致。0007上述第1种方法,仅比较数据库记录数量,还不能确定记录内容是否一致;上述第2种方法,比较数据库记录文件,但由于数据库在不同系统中存写文件的差异,虽然文件不一致,数据记录仍然可能是一致的,因而该方法也容易存在误判;上述第3种方法,比较数据记录的校验码,可以很好地检查主、备数据库的记录是否一致,但由于要计算并比较每一条记录的校验码,工作量很大,严重影响系统的性能。0008因此有必。

10、要开发一种新的主、备数据库记录一致性校验方法,既能够准确校验主、备数据库记录的一致性,又能够较现有方法显著提高校验效率。发明内容0009本发明要解决的技术问题是针对现有技术中存在的要么校验不准确,要么校验效率低的问题,提出一种校验准确,同时校验效率较高的主、备数据库记录一致性校验方法及系统。0010为解决上述技术问题,本发明主、备数据库记录一致性校验方法包括如下步骤0011在数据备份之前,对每条记录增加标识码字段和校验码字段,其中标识码字段是对记录的编号,标识记录的唯一性,校验码字段用于标识记录值的特征;0012在考察时间段内,将记录分成M个分片,并且对每个分片计算校验码,M为自然数;0013。

11、逐个对主、备数据库中对应的分片进行一致性检验;如果校验通过,则判定该分片内的记录一致,如果校验不通过,则再对该分片中的记录逐个进行一致性校验,以找出不一致的记录。0014进一步地,所述记录的校验码字段是对记录的原有各字段进行计算得到的。0015更进一步地,对记录的原有各字段进行计算,可以是采用HASH算法进行计算,也说明书CN102354292ACN102354301A2/5页5可以是采用签名算法或其它专门算法进行计算。0016进一步地,在考察时间段内,将记录分成M个分片的方法为0017在考察时间段内,以N个记录为一个分片,对该考察时间段内生成的所有记录依次进行分片,最后一个分片允许不足N个记。

12、录,N为自然数。0018进一步地,对分片计算校验码的方法为0019采用专门算法对该分片中各记录的校验码字段进行计算,来得到分片的校验码。采用的专门算法可以是HASH算法,也可以是签名算法或其它专门算法。0020进一步地,对主、备数据库中对应的分片进行一致性检验,采用的方法为0021判断主、备数据库中对应的分片的校验值以及记录个数是否一致,当主、备数据库中对应的分片的校验值以及记录个数均一致时,一致性校验通过;否则一致性校验不通过。0022一种主、备数据库记录一致性校验系统,包括0023字段增加模块,用于在数据备份之前,对每条记录增加标识码字段和校验码字段,其中标识码字段是对记录的编号,标识记录。

13、的唯一性,校验码字段用于标识记录值的特征;0024分片模块,用于在考察时间段内,将记录分成M个分片,并且对每个分片计算校验码,M为自然数;0025一致性校验模块,用于逐个对主、备数据库中对应的分片进行一致性检验;如果校验通过,则判定该分片内的记录一致,如果校验不通过,则再对该分片中的记录逐个进行一致性校验,以找出不一致的记录。0026进一步地,所述记录的校验码字段是对记录的原有各字段进行计算得到的。0027进一步地,所述分片模块包括分片子模块和分片校验码计算子模块;其中,所述分片子模块用于在考察时间段内,以N个记录为一个分片,对该考察时间段内生成的所有记录依次进行分片,最后一个分片允许不足N个。

14、记录,N为自然数;所述分片校验码计算子模块用于对分片中各记录的校验码字段进行计算,可以是采用HASH算法进行计算,也可以是采用签名算法或其它专门算法进行计算,来得到该分片的校验码。0028进一步地,所述一致性校验模块包括第一校验子模块和第二校验子模块;其中第一校验子模块用于判断主、备数据库中对应的分片的校验值以及记录个数是否一致,仅当主、备数据库中对应的分片的校验值以及记录个数均一致时,判定主、备数据库中对应分片的记录一致,其它情况判定为主、备数据库中对应分片的记录不一致;所述第二校验子模块用于,当所述第一校验子模块判定主、备数据库中对应分片的记录不一致时,对该对应分片中的记录逐个进行一致性校。

15、验,以找出不一致的记录。0029本发明的有益效果为0030本发明使用标识码字段标识记录,使用校验码字段标识记录值的特征,并且在考察时间段内,将记录分成M个分片,为了提高一致性校验效率,本发明将一致性校验过程划分为两个阶段实施,其中第一阶段校验主、备数据库中对应分片的整体特征,若整体特征相符,则认为对应分片内的记录一致,若对应分片的整体特征不符,则进入第二阶段,对主、备数据库中该对应分片内的各记录的特征分别进行比较,以查找出该对应分片内不一致的记录。0031采用本发明方案能够显著提高主、备数据库记录一致性校验的效率,并且本发明说明书CN102354292ACN102354301A3/5页6还具有。

16、技术方案实施简便、成本低等优点。附图说明0032图1为本发明第一实施例的主、备数据库记录一致性校验方法流程示意图;0033图2为本发明第二实施例的主、备数据库记录一致性校验系统结构示意图。具体实施方式0034下面结合附图和具体实施方式对本发明作进一步详细说明。0035本发明第一实施例提供了一种主、备数据库记录一致性校验方法,如图1所示,该实施例中,本发明主、备数据库记录一致性校验方法具体包括如下步骤0036步骤101,在数据备份之前,对每条记录增加标识码字段和校验码字段,其中标识码字段即记录的编号,用于标识记录的唯一性,校验码字段用于标识记录值的特征。该实施例中,可以单独增加一个包含这两个字段。

17、的数据表,如表一所示。0037表一、包含标识码字段和校验码字段的数据表00380039记录的校验码字段可以是对记录的原有各字段进行计算得到的,可以是用HASH算法进行计算,也可以是用签名算法或其它专门算法进行计算。当然,记录的校验码字段也可以采用其它合理的方式来得到,只要其能够表征记录值的特征即可。0040步骤102,在某个考察时间段TT表示起点T1和终端T2均确定的一段时间内,将记录分成M个分片,并且对每个分片计算校验码,M为自然数。得到的分片如表二所示,其中记录生成时间段即上述考察时间段。0041表二、分片示意表00420043该实施例中,在考察时间段内,将记录分成M个分片的方法为0044。

18、在考察时间段内,以N个记录为一个分片,对该考察时间段内生成的所有记录依次进行分片,最后一个分片允许不足N个记录,其中N为自然数。0045当然,在考察时间段内,将记录分成M个分片还可以采用其它方法,并不局限于本实施例提供的方法,例如前M1个分片的记录个数也不一定要求相等,即不一定均为N个。0046该实施例中,对分片计算校验码的方法可以为0047对该分片中各记录的校验码字段进行计算,可以是采用HASH算法进行计算,也可以是采用签名算法或其它专门算法进行计算,来得到分片的校验码。0048当然,分片的校验码也可以采用其它合理的方式来得到,只要其能够表征该分片的特征即可。0049步骤103,逐个对主、备。

19、数据库中对应的分片进行一致性检验;如果校验通过,则判定该分片内的记录一致,如果校验不通过,则再对该分片中的记录逐个进行一致性校验,说明书CN102354292ACN102354301A4/5页7以找出不一致的记录。0050该实施例中,对主、备数据库中对应的分片进行一致性检验,采用的方法为0051判断主、备数据库中对应的分片的校验值以及记录个数是否一致,当主、备数据库中对应的分片的校验值以及记录个数均一致时,一致性校验通过;否则一致性校验不通过。0052该步骤具体可以按如下方式来实现0053步骤1031,将主用数据库中某个分片的记录个数、考察时间段T、最小记录RMIN、最大记录标识码RMA和分片。

20、校验码VN发送至备用数据库端。0054步骤1032,在备用数据库端,根据T、RMIN和RMAX查询记录,如果00551查询的记录个数与主用数据库端发送来的分片记录个数不一致,则该对应的记录分片不一致;00562查询的记录个数与主用数据库端发送来的分片记录个数相一致,但根据备用数据库的该分片计算得到的分片验证码与主用数据库端发送来的对应分片的验证码VN不一致,则该对应分片的记录不一致;00573查询的记录个数与主用数据库端发送来的分片记录个数相一致否则,并且根据备用数据库的该分片计算得到的分片验证码与主用数据库端发送来的对应分片的验证码VN相一致,则判定主、备数据库的该对应分片的记录一致。005。

21、8对于记录不一致的对应分片记录集,再做后续处理0059向主用数据库端请求该对应分片内各记录的记录标识码和记录校验码RI,VI|I1,2,3,N,并以这些数据与备用数据库中的记录逐条进行比较,直到找到有问题的记录。0060在找到不一致的记录时,可以从主数据库中将不一致的数据同步到备份数据库。0061本发明第二实施例提供了一种主、备数据库记录一致性校验系统,如图2所示,该实施例中,本发明主、备数据库记录一致性校验系统包括字段增加模块201、分片模块202和一致性校验模块203。0062其中,字段增加模块201用于在数据备份之前,对每条记录增加标识码字段和校验码字段,其中标识码字段即记录的编号,用于。

22、标识记录的唯一性,校验码字段用于标识记录值的特征。0063该实施例中,记录的校验码字段可以是对记录的原有各字段进行计算得到的,具体地,可以是用HASH算法进行计算,也可以是用签名算法或其它专门算法进行计算得到的。当然,记录的校验码字段也可以采用其它合理的方式来得到,只要其能够表征记录值的特征即可。0064分片模块202用于在考察时间段内,将记录分成M个分片,并且对每个分片计算校验码,M为自然数。0065分片模块202包括分片子模块2021和分片校验码计算子模块2022。其中,分片子模块2021用于在考察时间段内,以N个记录为一个分片,对该考察时间段内生成的所有记录依次进行分片,最后一个分片允许。

23、不足N个记录,N为自然数;分片校验码计算子模块2022用于对分片中各记录的校验码字段进行计算,可以是采用HASH算法进行计算,也可以是采用签名算法或其它专门算法进行计算,来得到该分片的校验码。0066当然,分片子模块2021在考察时间段内,将记录分成M个分片还可以采用其它方说明书CN102354292ACN102354301A5/5页8案,并不局限于本实施例提供的上述方案,例如前M1个分片的记录个数也不一定要求相等,即不一定均为N个。0067分片的校验码也可以采用其它合理的方式来得到,只要其能够表征该分片的特征即可。0068一致性校验模块203用于逐个对主、备数据库中对应的分片进行一致性检验;。

24、如果校验通过,则判定该分片内的记录一致,如果校验不通过,则再对该分片中的记录逐个进行一致性校验,以找出不一致的记录。0069一致性校验模块203包括第一校验子模块2031和第二校验子模块2032;其中第一校验子模块2031用于判断主、备数据库中对应的分片的校验值以及记录个数是否一致,仅当主、备数据库中对应的分片的校验值以及记录个数均一致时,判定主、备数据库中对应分片的记录一致,其它情况判定为主、备数据库中对应分片的记录不一致;第二校验子模块2032用于,当第一校验子模块2031判定主、备数据库中对应分片的记录不一致时,对该对应分片中的记录逐个进行一致性校验,以找出不一致的记录。0070以上所述的具体实施例,对本发明的技术方案进行了进一步详细说明,所应注意的是,以上所述仅为本发明的具体实施例而已,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求记载的技术方案及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。说明书CN102354292ACN102354301A1/2页9图1说明书附图CN102354292ACN102354301A2/2页10图2说明书附图CN102354292A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1