[发明专利]一种异构数据库的一致性校验方法及装置有效
申请号: | 201711023740.7 | 申请日: | 2017-10-27 |
公开(公告)号: | CN107807982B | 公开(公告)日: | 2020-09-18 |
发明(设计)人: | 刘宇帅;丁娜;赵焕芳;杨声钢;李俊;郭庆磊 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/22;G06F16/21 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王云晓;王宝筠 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 一致性 校验 方法 装置 | ||
本申请提供了一种异构数据库的一致性校验方法及装置,方法包括:利用哈希计算进程计算第一数据库中各个数据表的哈希值,并利用哈希计算进程计算第二数据库中各个数据表的哈希值;将第一数据库中各个数据表的哈希值分别与第二数据库中对应的数据表的哈希值进行比较;当第一数据库中各个数据表的哈希值与第二数据库中对应的数据表的哈希值均相同时,确定第一数据库和第二数据库中的数据是完全一致的。本申请提供的异构数据库的一致性校验方法及装置可大幅减少校验的时间和空间开销。
技术领域
本发明涉及数据库技术领域,尤其涉及一种异构数据库的一致性校验方法及装置。
背景技术
在数据库换库投产过程中,需要在较短时间内对迁移前后两个数据库中的海量数据进行一致性校验。
目前,对数据库间一致性校验的方法包括:首先分别将两数据库中各个数据表的数据导出为文本文件,然后分别对各文本文件依某种排序规则进行排序,最后依次对各表导出的数据文件进行文本比较。
由上述一致性校验过程可以看出,现有的对数据库间一致性校验的方法需要分别将两库中数据导出为文本并进行排序,因此,CPU及存储空间占用极大,并且耗时较长。
发明内容
有鉴于此,本发明提供了一种异构数据库的一致性校验方法及装置,用以解决现有技术中的一致性校验方法CPU及存储空间占用极大,并且耗时较长的问题,其技术方案如下:
一种异构数据库的一致性校验方法,所述方法包括:
利用哈希计算进程计算第一数据库中各个数据表的哈希值,并利用所述哈希计算进程计算第二数据库中各个数据表的哈希值;
将所述第一数据库中各个数据表的哈希值分别与所述第二数据库中对应的数据表的哈希值进行比较;
当所述第一数据库中各个数据表的哈希值与所述第二数据库中对应的数据表的哈希值均相同时,确定所述第一数据库和第二数据库中的数据是完全一致的。
其中,利用所述哈希计算进程计算数据库中各个数据表的哈希值,包括:
在预先创建的表名清单中获取待计算表名,所述待计算表名为一待计算的数据表的表名;
获取与所述待计算表名对应的数据表中所包含的各列的列名以及各列的列类型;
利用所述各列的列名以及各列的列类型按预设的转换规则对所述待计算表名对应的数据表中各列的数据进行格式转换,并将转换后的各列数据以行为单位进行拼接,使每行的各列数据拼接成一字符串;
利用所述哈希计算进程和拼接后每行的字符串计算与所述待计算表名对应的数据表的哈希值;
判断所述表名清单中是否存在待计算表名,如果是,则转入所述在预先创建的表名清单中获取待计算表名这一步骤。
其中,利用所述哈希计算进程和每行的拼接字符串计算与所述待计算表名对应的数据表的哈希值,包括:
读取第一行字符串作为目标字符串;
利用所述哈希计算进程计算所述目标字符串的哈希值;
判断所述目标字符串所在的行是否为最后一行;
如果是,则将所述目标字符串的哈希值确定为与所述待计算表名对应的数据表的哈希值;
如果否,则将所述目标字符串的哈希值与下一行字符串进行拼接,将拼接后的字符串作为新的目标字符串,然后转入所述利用所述哈希计算进程计算所述目标字符串的哈希值这一步骤。
其中,所述利用所述各列的列名以及各列的列类型按预设的转换规则对所述待计算表名对应的数据表中的待转换列的数据进行格式转换,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711023740.7/2.html,转载请声明来源钻瓜专利网。