【技术实现步骤摘要】
一种关系型数据库数据对比方法及系统
本专利技术属于数据库
,尤其涉及一种关系型数据库数据对比方法及系统。
技术介绍
本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。随着各类数据库类型的应用。为了提高数据交换效率,或者保证数据实时性等情况,需要在多个数据库之间进行数据同步或者迁移操作。然而,进行同步或迁移后,如何判断同步或者迁移后的数据与源数据库中一致,是目前亟待解决的技术问题。据专利技术人了解,不同的数据库之间数据类型有差异,对数据的存储方式也不同,例如同样的数据,有的数据库存储二进制,有的存储是十六进制,导致尽管数据相同,但不能拿来直接对比,通常需要人工参与对比;并且,数据库通常数据量大,一条一条进行对比,耗时耗力,效率低。
技术实现思路
为克服上述现有技术的不足,本专利技术提供了一种关系型数据库数据对比方法及系统,依次针对源库和目标库中的数据表名、全表和行进行对比,对比更为准确;且采用操作名称来标识对比结果为“不同”的表名或行,能够为用户提供对于目标库的下一步操作指示。为实现上述目的,本专利技术的一个或多个实施例提供了如下技术方案:一种关系型数据库数据对比方法,包括以下步骤:分别从源库和目标库中获取数据表名并进行对比,得到表名对比结果;对于表名对比结果为相同的每一对数据表,进行全表对比,得到全表对比结果;对于全表对比结果为相同的每一对数据表,进行逐行对比,得到逐行对比结果;其中,所述表名对比结果和逐行 ...
【技术保护点】
1.一种关系型数据库数据对比方法,其特征在于,包括以下步骤:/n分别从源库和目标库中获取数据表名并进行对比,得到表名对比结果;/n对于表名对比结果为相同的每一对数据表,进行全表对比,得到全表对比结果;/n对于全表对比结果为相同的每一对数据表,进行逐行对比,得到逐行对比结果;/n其中,所述表名对比结果和逐行对比结果中,对于对比结果为不同的记录,均采用操作名称来标识;所述操作名称为更新、操作或删除。/n
【技术特征摘要】
1.一种关系型数据库数据对比方法,其特征在于,包括以下步骤:
分别从源库和目标库中获取数据表名并进行对比,得到表名对比结果;
对于表名对比结果为相同的每一对数据表,进行全表对比,得到全表对比结果;
对于全表对比结果为相同的每一对数据表,进行逐行对比,得到逐行对比结果;
其中,所述表名对比结果和逐行对比结果中,对于对比结果为不同的记录,均采用操作名称来标识;所述操作名称为更新、操作或删除。
2.如权利要求1所述的一种关系型数据库数据对比方法,其特征在于,数据表名对比方法包括:
创建map,将源库表名列表写入key字段,将value字段作为表名对比结果字段,value字段的值初始化为插入;
对于目标库中的每个表名,查找map中是否存在该表名,若存在,表名对比结果修改为相同;若不存在,不作处理;
遍历map,得到表名对比结果列表。
3.如权利要求1所述的一种关系型数据库数据对比方法,其特征在于,全表对比方法包括:对于表名对比结果为相同的每一对数据表,依次根据表名、数据表行数和全表MD5将两个数据表进行对比。
4.如权利要求3所述的一种关系型数据库数据对比方法,其特征在于,全表对比方法包括:
对于表名对比结果为相同的每一对数据表,均执行以下操作:
从源库和目标库获取两个数据表的字段信息,所述字段信息包括字段名和字段的数据类型;
根据字段名的哈希值判断所述两个数据表中字段名是否完全相等,
若相等,判断字段的数据类型中是否存在MD5值不支持的数据类型,
若不存在,从源库和目标库获取所述两个数据表的行数,判断行数是否相等,
若行数均不为0且相等,从源库和目标库获取所述两个数据表的全表MD5,如果全表MD5值相等,所述两个数据表的全表对比结果为相同,否则,为不同。
5.如权利要求1所述的一种关系型数据库数据对比方法,其特征在于,逐行对比方法包括:
对于全表对比结果为相同的每一对数据表,判断两个数据表是否存在主键,若存在,依次按照主键值MD5和整行数据值MD5对两个数据表进行对比;若不存在,按照整行数据值MD5对两个数据表进行对比。
6.如权利要求5所述的一种关系型数据库数据对比方法,其特征在于,
若两个数据表存在主键,分别获取两个数据表中每一行对应的唯一标识、主键值MD5和整行数据值MD5,并分别写入两个行数据列表;
遍历源库行数据列表,将主键值MD5列...
【专利技术属性】
技术研发人员:王大鹏,冯路,卢健,范翊,张元超,
申请(专利权)人:瀚高基础软件股份有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。