System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数据库对象的验证方法及相关设备技术_技高网

一种数据库对象的验证方法及相关设备技术

技术编号:41532626 阅读:10 留言:0更新日期:2024-06-03 23:09
本申请提供了一种数据库对象的验证方法,包括:源数据库将至少一个数据库对象依赖的表数据导出至文件,目标数据库读取该文件,获得至少一个数据库对象中目标数据库对象依赖的表数据,然后目标数据库根据目标数据库对象依赖的表数据,验证目标数据库对象。该方法缩短了数据同步过程的时间,可以提前把表数据从源数据库导出成文件,对象验证可以随时发起,无需等待表数据写入到目标数据库,由此提高了数据库对象的验证效率。而且,该方法对系统架构没有直接依赖,可应用于各种系统架构中,具有高可用性。

【技术实现步骤摘要】

本申请涉及数据库领域,尤其涉及一种数据处理方法、系统、计算设备集群、计算机可读存储介质、计算机程序产品。


技术介绍

1、随着数据库领域的蓬勃发展,越来越多的数据库厂商发布了多样化的数据库产品。不同的客户可以根据自身的策略和技术要求选取符合需求的数据库。例如,业务升级时,客户可以选择新的数据库替换原有的数据库,如此需要进行数据库迁移。

2、数据库迁移包括数据库对象(如存储过程/函数)的迁移和迁移后对象验证。对象验证可以包括带数据验证。带数据验证具体是先将待验证的数据库对象所依赖的表数据从源数据库同步到目标数据库,创造一个和源数据库各方面条件都一致的环境,然后在目标数据库运行这个数据库对象,获取返回值和运行时间,再和源数据库的返回值和时间进行对比,以确定该数据库对象迁移后是否和源数据库库保持功能的一致性和性能的一致性。

3、数据同步的过程一般分为数据导出、数据转换和数据导入三个阶段,上述三个阶段全部执行成功后,可以进行带数据的对象验证环节。然而,数据从源数据库导出,再通过数据库接口写入目标数据库,效率较低,尤其当数据量较大时,可能需要数小时甚至更多时间才能同步完成。数据准备阶段耗时太长,极大地影响了对象验证的效率。


技术实现思路

1、本申请提供了一种数据库对象的验证方法,该方法提前把表数据从源数据库导出成文件,对象验证可以随时发起,无需等待表数据写入到目标数据库,由此提高了数据库对象的验证效率。本申请还提供了上述方法对应的数据库迁移系统、计算设备集群、计算机可读存储介质以及计算机程序产品。

2、第一方面,本申请提供一种数据库对象的验证方法。该方法可以由数据库迁移系统执行。数据库迁移系统包括源数据库和目标数据库,源数据库将至少一个数据库对象依赖的表数据导出至文件,目标数据库读取所述文件,获得所述至少一个数据库对象中目标数据库对象依赖的表数据,然后目标数据库根据所述目标数据库对象依赖的表数据,验证所述目标数据库对象。

3、该方法缩短了数据同步过程的时间,可以提前把表数据从源数据库导出成文件,对象验证可以随时发起,无需等待表数据写入到目标数据库,由此提高了数据库对象的验证效率。

4、在一些可能的实现方式中,所述文件包括文件头和数据。相应地,目标数据可以读取所述文件中的数据,然后对所述文件中的数据进行格式转换,从而获得所述至少一个数据库对象中目标数据库对象依赖的表数据。

5、在该方法中,目标数据库在验证目标数据库对象时,读取与该目标数据库对象对应的文件中的数据并进行格式转换,以获得目标数据库对象依赖的表数据。与直接同步表数据进行备份相比,文件可以实现快速的备份,文件中的数据可以被重复使用,实现了一次数据导出,任意次重复使用的效果。

6、在一些极端测试场景中,需要保证每次验证的初始数据要一致,如果直接对表数据进行同步,若数据被修改(如:被其他对象验证修改或人为修改),那么这些数据将变得不可用,需要重复执行整个数据同步过程,重新导数据,将导致验证过程及其漫长,该方法通过将数据导出至文件,可以避免重复执行整个数据同步过程,缩短了验证时间,提高了验证效率。

7、在一些可能的实现方式中,目标数据库可以根据所述文件中的数据,按照所述至少一个数据库对象中目标数据库对象所依赖的表数据的结构,构建外表,从而实现重构目标数据库对象所依赖的表数据。相应地,目标数据库在验证目标数据库对象时,可以根据所述外表,验证所述目标数据库对象。

8、该方法通过在读取文件中的数据后进行数据格式转换,获得外表,一方面可以为数据库对象的验证提供相应数据,实现带数据验证,另一方面可以减少目标数据库资源占用。

9、在一些可能的实现方式中,目标数据库根据所述外表,验证所述目标数据库对象时,可以运行所述目标数据库对象,执行对所述外表的插入、删除、查询、更新、连接、清空、行级锁或事务操作中的一种或多种,获得第一返回值和第一运行时间,然后目标数据库根据所述第一返回值、第一运行时间以及所述源数据库运行所述目标数据库对象获得的第二返回值和第二运行时间,验证所述目标数据库对象。

10、具体地,目标数据库可以比较第一返回值、第二返回值,以及比较第一运行时间、第二运行时间,从而验证目标数据库对象。例如,第一返回值与第二返回值相等,表征该目标数据库对象迁移后,在目标数据库和源数据库保持功能的一致性。第一运行时间、第二运行时间的差值在预设范围内,则表明该目标数据库对象迁移后,在目标数据库和源数据库保持性能的一致性。第一返回值和第二返回值相等,且第一运行时间、第二运行时间的差值在预设范围内,表征目标数据库对象验证通过。

11、该方法通过构造外表,并在目标数据库运行目标数据库对象,以执行对外表的相应操作,可以达到如同在目标数据库的内表执行相应操作相同的效果,如此一方面可以提升验证效率,另一方面可以提高验证的准确度。

12、在一些可能的实现方式中,所述目标数据库可以根据所述文件中的数据,调用外表访问插件,按照所述至少一个数据库对象中目标数据库对象所依赖的表数据的结构,构建外表。

13、该方法通过外表访问插件构建外表,可以屏蔽数据库系统架构差异,对系统架构没有直接依赖,可应用于各种系统架构,具有较高可用性。

14、在一些可能的实现方式中,所述目标数据库包括postgresql或gaussdb中的一种或多种。postgresql或gaussdb支持开发扩展插件,如此,目标数据库可以基于开发的外表访问插件实现以外表方式访问外部文件,为基于外表验证数据库对象提供帮助。

15、在一些可能的实现方式中,所述文件中的数据以二进制字节流格式存储。如此可以提升表数据导出的性能,以及减少数据存储的空间占用。

16、在一些可能的实现方式中,目标数据库可以响应于对所述目标数据库对象的验证请求,读取所述文件,获得所述至少一个数据库对象中目标数据库对象依赖的表数据。也即,该方法可以实现按需验证相应的数据库对象,如此可以避免资源浪费,提高资源利用率。

17、在一些可能的实现方式中,数据库迁移系统可以集成于数据库和应用迁移(database and application migration)ugo,以下简称为ugo。ugo可以实现将源数据库中的对象同步至异构的目标数据库,并支持将源数据库中至少一个数据库对象依赖的表数据导出至文件,目标数据库读取文件获得表数据,以实现对同步的数据库对象进行带数据验证。该方法对带数据对象验证的数据准备阶段进行了全新的方案设计,有效缩短了数据准备阶段的时长,由此提高了数据库对象验证的效率。而且,导出的文件通常是只读的,目标数据库可以多次读取文件中的数据部分,并根据读取的数据部分进行相应的格式转换,从而实现对不同数据库对象的验证。该方法无需重复执行整个数据同步过程,大幅度缩短了同步时间,提高了数据库对象验证的效率,满足了业务的需求。

18、第二方面,本申请提供一种数据库迁移本文档来自技高网...

【技术保护点】

1.一种数据库对象的验证方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述文件包括文件头和数据,所述目标数据库读取所述文件,获得所述至少一个数据库对象中目标数据库对象依赖的表数据,包括:

3.根据权利要求2所述的方法,其特征在于,所述目标数据库对所述文件中的数据进行格式转换,获得所述至少一个数据库对象中目标数据库对象依赖的表数据,包括:

4.根据权利要求3所述的方法,其特征在于,所述目标数据库根据所述外表,验证所述目标数据库对象,包括:

5.根据权利要求3所述的方法,其特征在于,所述目标数据库根据所述文件中的数据,按照所述至少一个数据库对象中目标数据库对象所依赖的表数据的结构,构建外表,包括:

6.根据权利要求1至5任一项所述的方法,其特征在于,所述文件中的数据以二进制字节流格式存储。

7.根据权利要求1至6任一项所述的方法,其特征在于,所述目标数据库读取所述文件,获得所述至少一个数据库对象中目标数据库对象依赖的表数据,包括:

8.一种数据库迁移系统,其特征在于,所述系统包括:

9.根据权利要求8所述的系统,其特征在于,所述文件包括文件头和数据,所述目标数据库具体用于:

10.根据权利要求9所述的系统,其特征在于,所述目标数据库对所述文件中的数据进行格式转换,获得所述至少一个数据库对象中目标数据库对象依赖的表数据,具体用于:

11.根据权利要求10所述的系统,其特征在于,所述目标数据库具体用于:

12.根据权利要求10所述的系统,其特征在于,所述目标数据库具体用于:

13.根据权利要求8至12任一项所述的系统,其特征在于,所述文件中的数据以二进制字节流格式存储。

14.根据权利要求1至6任一项所述的系统,其特征在于,所述目标数据库具体用于:

15.一种计算设备集群,其特征在于,所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述计算设备集群执行如权利要求1至7中任一项所述的方法。

16.一种计算机可读存储介质,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至7任一项所述的方法。

17.一种计算机程序产品,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至7任一项所述的方法。

...

【技术特征摘要】

1.一种数据库对象的验证方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述文件包括文件头和数据,所述目标数据库读取所述文件,获得所述至少一个数据库对象中目标数据库对象依赖的表数据,包括:

3.根据权利要求2所述的方法,其特征在于,所述目标数据库对所述文件中的数据进行格式转换,获得所述至少一个数据库对象中目标数据库对象依赖的表数据,包括:

4.根据权利要求3所述的方法,其特征在于,所述目标数据库根据所述外表,验证所述目标数据库对象,包括:

5.根据权利要求3所述的方法,其特征在于,所述目标数据库根据所述文件中的数据,按照所述至少一个数据库对象中目标数据库对象所依赖的表数据的结构,构建外表,包括:

6.根据权利要求1至5任一项所述的方法,其特征在于,所述文件中的数据以二进制字节流格式存储。

7.根据权利要求1至6任一项所述的方法,其特征在于,所述目标数据库读取所述文件,获得所述至少一个数据库对象中目标数据库对象依赖的表数据,包括:

8.一种数据库迁移系统,其特征在于,所述系统包括:

9.根据权利要求8所述的系统,其特征在于,所述文件包括文件头和数据,所述目标数据库具...

【专利技术属性】
技术研发人员:李志学李建峰维沙尔·纳维尼特·潘迪亚苏米亚·兰詹·乔杜里
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1