一种数据一致性校验方法
【专利摘要】本申请公开了一种数据一致性校验方法,包括:在将数据表存储至数据库系统时,对于数据表中的每行记录,根据该行记录的内容,采用预设的加密方法计算得到一校验码并保存;当所述数据库系统接收到对所述数据表的数据进行复制的指令时,将所复制的记录和对应的所述校验码一同进行复制,并存储在目的存储设备中;对于当前存储的每一条记录,所述目的存储设备根据该记录的内容采用预设的加密方法计算得到一校验码,并将所计算得到的校验码与当前存储的该记录的所述校验码进行比较,如果一致,则判定该记录的复制具有一致性,否则,判定该记录的复制存在错误。采用本发明可以确保进行海量数据复制时数据的一致性,且效率高、传输资源开销小。
【专利说明】一种数据一致性校验方法
【技术领域】
[0001]本发明涉及数据库维护技术,特别是涉及一种数据一致性校验方法。
【背景技术】
[0002]在数据库技术的应用领域,在多个存储设备间进行数据复制时,通常是直接从源存储设备中读取数据后通过中间存储媒介或网络存储至目的存储设备上。在上述方案中目的存储设备并不对所存储数据的一致性进行校检。但是,在实际应用中,数据的拷贝过程中可能会存在数据被恶意串改或丢失等情况。因此,在对数据库中的数据进行复制时,需要对数据的完整性进行验证,以确保数据的安全性。
[0003]目前,对复制数据的一致性进行验证,是通过在完成数据复制后分别将源存储设备和目的存储设备中的数据进行比较来实现的。例如将数据从A复制到B,传统的方案需要把A和B查询出来做比较。这种一致性比较方法由于在比较前需要先将数据分别读取出来,因此,在海量数据处理的应用场景下,会存在数据传输开销大、校验时延大等问题,不适应于进行海量数据的处理。
【发明内容】
[0004]有鉴于此,本发明的主要目的在于提供一种数据一致性校验方法,该方法可以在进行海量数据复制时确保数据的一致性,且处理效率高、传输资源开销小。
[0005]为了达到上述目的,本发明提出的技术方案为:
[0006]一种数据一致性校验方法,包括:
[0007]在将数据表存储至数据库系统时,对于数据表中的每行记录,根据该行记录的内容,采用预设的加密方法计算得到一校验码并保存;
[0008]当所述数据库系统接收到对所述数据表的数据进行复制的指令时,将所复制的记录和对应的所述校验码一同进行复制,并存储在目的存储设备中;
[0009]对于当前存储的每一条记录,所述目的存储设备根据该记录的内容采用预设的加密方法计算得到一校验码,并将所计算得到的校验码与当前存储的该记录的所述校验码进行比较,如果一致,则判定该记录的复制具有一致性,否则,判定该记录的复制存在错误。
[0010]综上所述,本发明提出的数据一致性校验方法,通过为数据表中的每一记录分别生成一校验码,使得在进行数据复制过程中,可以据此实现数据一致性的校验,避免了传统数据表复制过程中存在的数据传输开销大、校验时延大等问题,因此,适用于海量数据的复制。
【专利附图】
【附图说明】
[0011]图1为本发明实施例一的流程示意图。
【具体实施方式】
[0012]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
[0013]本发明的核心思想是:在存储数据表时,为该数据表增加一校验字段,也就是为表中每一条记录分别根据记录具体内容生成一个校验码,当该某条记录被复制时,将该条记录与其校验码一同进行复制,这样,目的存储设备可以根据该校检码对该条记录的数据进行一致性验证。
[0014]图1为本发明实施例一的流程示意图,如图1所示,该实施例主要包括:
[0015]步骤101、在将数据表存储至数据库系统时,对于数据表中的每行记录,根据该行记录的内容,采用预设的加密方法计算得到一校验码并保存。
[0016]本步骤用于为每条记录生成一校验码,以便复制据此进行一致性判断。
[0017]所述加密方法将预先保存至系统各数据存储设备中,具体可采用现有的加密方法即可。
[0018]较佳的,为了获得较少字节的校验码,所述加密方法可以为循环冗余检验32(CRC32)方法。这样,对于每行记录只需要额外增加4个字节来保存校验码。
[0019]较佳的,所述校验码采用系统隐含字段的方式进行保存。这样,校验码对用户是不可见的,只在系统内部处理时使用。
[0020]步骤102、当所述数据库系统接收到对所述数据表的数据进行复制的指令时,将所复制的记录和对应的所述校验码一同进行复制,并存储在目的存储设备中。
[0021]步骤103、对于当前存储的每一条记录,所述目的存储设备根据该记录的内容采用预设的加密方法计算得到一校验码,并将所计算得到的校验码与当前存储的该记录的所述校验码进行比较,如果一致,则判定该记录的复制具有一致性,否则,判定该记录的复制错误。
[0022]进一步地,为了增强系统的可维护性,当对所述数据表中的任一行记录进行更新时,根据更新后的记录内容,采用所述加密方法对所述记录的校验码进行更新。
[0023]当对所述数据表中的记录进行增加时,根据所增加记录的内容,采用所述加密方法计算得到一校验码并保存。
[0024]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据一致性校验方法,其特征在于,包括: 在将数据表存储至数据库系统时,对于数据表中的每行记录,根据该行记录的内容,采用预设的加密方法计算得到一校验码并保存; 当所述数据库系统接收到对所述数据表的数据进行复制的指令时,将所复制的记录和对应的所述校验码一同进行复制,并存储在目的存储设备中; 对于当前存储的每一条记录,所述目的存储设备根据该记录的内容采用预设的加密方法计算得到一校验码,并将所计算得到的校验码与当前存储的该记录的所述校验码进行比较,如果一致,则判定该记录的复制具有一致性,否则,判定该记录的复制存在错误。
2.根据权利要求1所述的方法,其特征在于,所述加密方法为CRC32方法。
3.根据权利要求1所述的方法,其特征在于,所述校验码采用系统隐含字段的方式进行保存。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 当对所述数据表中的任一行记录进行更新时,根据更新后的记录内容,采用所述加密方法对所述记录的校验码进行更新。
5.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 当对所述数据表中的记录进行增加时,根据所增加记录的内容,采用所述加密方法计算得到一校验码并保存。
【文档编号】G06F17/30GK104077373SQ201410286228
【公开日】2014年10月1日 申请日期:2014年6月24日 优先权日:2014年6月24日
【发明者】唐超, 马丽伟, 秦波, 王 锋, 赵晓平 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司