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

一种关系型数据库的升级方法及设备技术

技术编号:40212848 阅读:5 留言:0更新日期:2024-02-02 22:21
本申请提供关系型数据库的动态升级方法及设备。该方法包括:配置低版本元数据集合,获取低版本数据库的树形数据表结构和数据类型;升级低版本元数据集合,获取高版本数据库的树形数据表结构和数据类型;分别比对低版本数据库的树形数据表结构和数据类型及高版本数据库的树形数据表结构和数据类型,根据比对的结果将低版本数据库升级为高版本数据库,其中在将低版本数据库升级为高版本数据库时,低版本数据库和高版本数据库能够同时运行。本申请可以通过配置自动对数据库的字段进行生成和升级;保持数据完整性、准确性和可用性;在升级过程中,保证数据的一致性和可用性,并且对于不兼容的数据类型变更提供了支持;支持不同版本的数据的查询和更改。

【技术实现步骤摘要】

本申请属于数据库,具体涉及关系型数据库的升级方法及设备


技术介绍

1、数据库是现代企业业务应用中非常重要的一个组成部分,通常一个企业的存储库里存放着企业的各种重要信息。关系型数据库(relational data base managementsystem,rdbms)作为最常用的数据库类型在各领域中广泛应用。

2、然而,关系型数据库在实际应用过程中,面临以下四个问题:

3、(1)无法同时支持不同版本的数据。在一个应用中会有很多数据表,随着时间推移,这些数据表的结构会发生改变,比如增加、删除、修改字段等。目前也存在一些数据库表数据结构升级的方案,但是它们升级完成后,数据库就无法支持服务端旧版本的数据了,不能同时支持不同版本的数据表结构,需要应用程序自行处理。

4、(2)无法在应用系统运行中动态升级数据库的表字段,导致修改表数据需要进行停机维护。目前的关系型数据库表修改后,必须停机修改应用代码,兼容新版本数据结构。

5、(3)如果进行字段的修改,数据量很大,修改时间长,修改期间无法保证数据库的可用性。当我们需要修改一个非常大的表的结构时,传统的关系型数据库需要把原表数据复制到临时表中备份,然后进行修改,这个过程通常需要很长的时间。在这个过程中,数据库的可用性就会受到影响。

6、(4)不支持对于不兼容的数据类型修改。传统的关系型数据库不支持在数据表中修改不兼容的数据类型,比如字符型转为小数型或整型转为字符型等。这样就造成了对于不兼容的数据类型修改非常困难,造成了无法在应用系统运行中动态升级数据库的表字段的问题。目前的关系型数据库表修改后,必须停机才可以修改应用代码,修改表数据需要先停机才可以维护,才可以兼容新版本的数据结构。


技术实现思路

1、本申请提供关系型数据库的升级方法、装置,用以解决相关技术中存在的以上问题。

2、本申请第一方面提供一种关系型数据库的动态升级方法,包括:

3、配置低版本元数据集合,获取低版本数据库的树形数据表结构和数据类型;

4、升级所述低版本元数据集合,获取高版本数据库的树形数据表结构和数据类型;

5、分别比对所述低版本数据库的树形数据表结构和数据类型及高版本数据库的树形数据表结构和数据类型,根据所述比对的结果将所述低版本数据库升级为高版本数据库,其中在将所述低版本数据库升级为高版本数据库时,所述低版本数据库和高版本数据库能够同时运行。

6、进一步地,所述配置低版本元数据集合,获取低版本数据库的树形数据表结构和数据类型,包括:

7、配置低版本元数据集合,维护数据库表字段关系;

8、将所述低版本元数据集合存入元数据集合管理器中;

9、解析所述元数据集合管理器中的配置,生成低版本数据库的树形数据表结构和数据类型。

10、进一步地,所述升级所述低版本元数据集合,获取高版本数据库的树形数据表结构和数据类型,包括:

11、修改低版本元数据集合的文件及其版本号,生成高版本元数据集合的数据结构文件;

12、根据所述修改的结果,获取所述高版本元数据集合与所述低版本元数据集合的不兼容字段,以编辑升级脚本并保存;

13、保存所述数据结构文件,以使得所述低版本元数据集合升级为高版本元数据集合;

14、将所述高版本元数据集合的数据结构文件存入元数据集合管理器中,生成高版本数据库的树形数据表结构和数据类型。

15、进一步地,所述分别比对所述低版本数据库的树形数据表结构和数据类型及高版本数据库的树形数据表结构和数据类型,根据所述比对的结果将所述低版本数据库升级为高版本数据库,包括:

16、获取所述低版本数据库的树形数据表结构和高版本数据库的树形数据表结构的顶部根表;

17、对比两个所述根表,根据比对结果对高版本数据库的树形数据表结构的顶部根表进行删除表、新增表、或修改表的操作;

18、如果两个所述根表存在子表,则比对两个所述根表之间的对应子表,根据比对结果对高版本数据库的树形数据表结构的对应子表进行删除表、新增表、或修改表的操作,直至所有子表比对完毕;

19、当所有根表和子表对比完毕后,合并所有所述操作,转化为ddl语句并执行,从而将所述低版本数据库升级为高版本数据库。

20、进一步地,在将所述低版本数据库升级为高版本数据库之后,进一步包括:

21、根据高版本数据库中每条数据的数据版本,获取所有对应低版本元数据集合的根表数据;

22、获取将所述根表数据的数据版本进行升级的升级脚本;

23、通过所述根表数据的数据版本获取低版本元数据集合,通过低版本元数据集合查询得到对应低版本元数据集合的所有数据;

24、通过所述升级脚本将所述对应低版本元数据集合的所有数据升级到对应高版本元数据集合的数据。

25、进一步地,进一步包括:

26、根据用户需求选择是否删除与低版本元数据集合相关的数据库字段。

27、进一步地,进一步包括:

28、获取数据查询请求记载的查询项目及查询版本;

29、确定所述关系型数据库记载的与所述查询项目对应的查询源数据及所述查询源数据的第一存储版本;

30、如果所述查询版本大于所述第一存储版本,获取所述第一存储版本至所述查询版本的升级脚本,并利用该升级脚本将所述查询源数据升级为查询目标数据,以向生成所述数据查询请求的请求方返回;如果所述查询版本小于或等于所述第一存储版本,则将所述查询源数据向生成所述数据查询请求的请求方返回。

31、进一步地,进一步包括:

32、获取数据更新请求记载的目标数据及所述目标数据的数据版本;

33、如果所述目标数据的数据版本为最新数据版本,则更新所述目标数据;如果所述目标数据的数据版本不是最新数据版本,则获取所述目标数据的数据版本至所述最新数据版本的升级脚本,并利用该升级脚本将所述目标数据升级为最新数据版本的目标数据,再更新所述目标数据。

34、本申请第二方面提供一种关系型数据库的动态升级设备,包括:

35、存储器,用于存储可执行指令;以及

36、处理器,用于与存储器连接以执行可执行指令从而完成如第一方面说明的关系型数据库的动态升级方法。

37、本申请第三方面提供一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现如第一方面说明的关系型数据库的动态升级方法。

38、本申请与以往技术相比的有益效果:

39、(1)可以通过配置自动对数据库的字段进行生成和升级。这意味着无需手工维护数据库结构,可以大大缩短开发周期和降低开发维护成本。

40、(2)本申请中字段升级后,会自动对数据库中的数据进行升级。这可以保持数据完整性,避免数据丢失或不一致的情况,从本文档来自技高网...

【技术保护点】

1.一种关系型数据库的动态升级方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,

3.如权利要求1所述的方法,其特征在于,

4.如权利要求1所述的方法,其特征在于,

5.如权利要求3所述的方法,其特征在于,在将所述低版本数据库升级为高版本数据库之后,进一步包括:

6.如权利要求5所述的方法,其特征在于,进一步包括:

7.如权利要求5所述的方法,其特征在于,进一步包括:

8.如权利要求5所述的方法,其特征在于,进一步包括:

9.一种关系型数据库的动态升级设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;计算机程序被处理器执行以实现如权利要求1-8任一项所述的关系型数据库的动态升级方法。

【技术特征摘要】

1.一种关系型数据库的动态升级方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,

3.如权利要求1所述的方法,其特征在于,

4.如权利要求1所述的方法,其特征在于,

5.如权利要求3所述的方法,其特征在于,在将所述低版本数据库升级为高版本数据库之后,进一步包括:

6.如权利要求5所述的方法,其特征在于...

【专利技术属性】
技术研发人员:吴一鑫李青李鹏飞林张铭
申请(专利权)人:杭州未名信科科技有限公司
类型:发明
国别省市:

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

1