System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据库更新方法及系统技术方案_技高网

数据库更新方法及系统技术方案

技术编号:40833561 阅读:2 留言:0更新日期:2024-04-01 14:57
本申请提供一种数据库更新方法及系统,方法包括:创建与待更新数据库中任一类旧父表对应的新父表;将旧父表中与预设指令对应的旧子表关联新父表,以创建第一进程;退出第一进程并根据第一进程创建第二进程;第二进程用于利用定时器在预设时间范围内按照预设处理周期和预设处理数量,循环更新所述旧父表中的旧子表,并将更新后的旧子表关联至新父表,以得到与新父表关联的新子表;删除旧父表,以得到目标数据库。目标数据库为更新后的数据库,目标数据库包括新父表以及与新父表关联的新子表。通过定时、定量处理数据库中的旧子表,在设备业务空闲时对旧子表进行处理,可减少与正常业务竞争性能资源,提高处理速度,解决数据库更新慢的问题。

【技术实现步骤摘要】

本申请涉及数据库更新,尤其涉及一种数据库更新方法及系统


技术介绍

1、利用网络安全设备保护网络安全时,会存储大量的日志,例如安全日志、审计日志等,而存储日志就会使用到数据库,一些设备将postgresql(简称pg)作为主要的数据库来存储日志。由于技术的发展,网安设备防护的程度更精细,对应记录的日志字段越来越多,如旧版本安全日志是4个字段,新版本是8个字段。软件版本迭代,势必要兼容之前的数据,这就需要对旧版本的数据库做兼容性处理,需要更新旧数据库。

2、pg为关系型数据库,包括父表和子表,一个父表可以有多个子表,基于父表可以查询到所有子表的数据。在实际开发中,每天会创建一个子表,假设设备运行1年,那么一类父表下就有365个子表,假设存在n类父表,那么设备运行1年就会存在n*365个子表。一种日志对应一类父表,版本升级中,新版本更新了字段,那么在新版本启动过程会更新旧数据库,而旧设备由于运行时间较长会产生大量的子表,那么新版本启动更新旧数据库的过程会花费较长的时间,进而导致设备启动时间长。


技术实现思路

1、本申请提供一种数据库更新方法及系统,以解决数据库更新慢的问题。

2、本申请第一方面提供一种数据库更新方法,包括:

3、创建与待更新数据库中任一类旧父表对应的新父表;任一类所述旧父表关联多个旧子表;

4、将所述旧父表中与预设指令对应的所述旧子表关联所述新父表,以创建第一进程;所述预设指令用于查询预设时间段内的所述旧子表;

>5、退出所述第一进程并根据所述第一进程创建第二进程;所述第二进程用于利用定时器在预设时间范围内按照预设处理周期和预设处理数量,循环更新所述旧父表中的所述旧子表,并将更新后的所述旧子表关联至所述新父表,以得到与所述新父表关联的新子表;

6、删除所述旧父表,以得到目标数据库;所述目标数据库为更新后的数据库,所述目标数据库包括所述新父表以及与所述新父表关联的所述新子表。

7、可选的,所述创建与待更新数据库中任一旧父表对应的新父表包括:

8、对所述待更新数据库中的旧父表进行重命名,以使所述旧父表的名称从第一父表变更为第二父表;

9、基于新字段利用所述旧父表创建与所述旧父表对应的新父表;

10、对所述新父表进行命名,以使所述新父表的名称为第一父表。

11、可选的,所述将所述旧父表中与预设指令对应的所述旧子表关联所述新父表,以创建第一进程包括:

12、创建第一二维数组,所述第一二维数组的维度包括旧子表个数和旧父表种类数;

13、利用预设指令查询所述第一二维数组中任一类所述旧父表中预设时间段内的所述旧子表,以得到查询子表;

14、将所述查询子表保存在所述第一二维数组中;

15、遍历所述第一二维数组,以解除所述查询子表与所述第一二维数组中的任一类所述旧父表的父子表关系;

16、利用所述新字段更新所述查询子表,以得到查询新子表;

17、分别关联所述查询新子表与和所述查询新子表对应的所述第一二维数组中的所述新父表,以创建第一进程。

18、可选的,所述利用定时器在预设时间范围内按照预设处理周期和预设处理数量,循环更新所述旧父表中的所述旧子表,并将更新后的所述旧子表关联至所述新父表,以得到与所述新父表关联的新子表包括:

19、创建第二二维数组,所述第二二维数组的维度包括旧子表个数和旧父表种类数;

20、查询与任一类所述旧父表关联的所述旧子表,并保存在所述第二二维数组中;

21、创建定时器,并利用所述定时器的定时处理函数在预设时间范围内按照预设处理周期和预设处理数量,循环更新所述第二二维数组中的所述旧子表;所述预设处理周期为所述定时器的执行时间间隔;

22、将更新后的所述旧子表解除与所述第二二维数组中的所述旧父表的父子关系,并关联至所述新父表;

23、循环判断所述第二二维数组中的所述旧子表的处理是否完成;所述旧子表的处理包括更新所述旧子表以及关联更新后的所述旧子表与所述新父表;

24、创建子表处理完成变量,若所述子表处理完成变量的值为1,则退出所述子进程,以得到与所述新父表关联的所述新子表。

25、可选的,所述定时器的预设处理周期为5分钟。

26、可选的,所述利用所述定时器的定时处理函数在预设时间范围内按照预设处理周期和预设处理数量,循环更新所述第二二维数组中的所述旧子表包括:

27、创建当前时间存储变量;

28、获取当前时间,并将所述当前时间保存在所述当前时间存储变量中;

29、若所述当前时间在所述预设时间范围内,则利用所述定时器的定时处理函数按照预设处理周期和预设处理数量,循环更新所述第二二维数组中的所述旧子表;所述预设时间为凌晨0点至6点。

30、可选的,所述方法还包括:

31、若所述当前时间不在所述预设时间范围内,则退出所述定时处理函数;

32、直到所述当前时间在所述预设时间范围内,利用所述定时器的定时处理函数按照预设处理周期和预设处理数量,循环更新所述第二二维数组中的所述旧子表。

33、可选的,所述若所述当前时间在所述预设时间范围内,则利用所述定时器的定时处理函数按照预设处理周期和预设处理数量,循环更新所述第二二维数组中的所述旧子表包括:

34、创建所述第二二维数组的索引下标变量和所述定时器的已处理数量变量;

35、利用所述索引下标变量中的索引下标标记所述第二二维数组中的所述旧子表;

36、利用所述新字段更新所述第二二维数组中的所述旧子表;

37、按照所述预设处理周期,循环遍历所述第二二维数组,以根据所述索引下标获取所述旧子表的已处理数量;

38、将所述已处理数量保存在所述已处理数量变量中,若所述已处理数量等于所述预设处理数量,则完成此次对所述第二二维数组中的所述旧子表的更新,并开始下一次更新。

39、可选的,所述方法还包括:

40、若所述已处理数量小于所述预设处理数量,则持续对所述第二二维数组中的所述旧子表进行更新,直到所述已处理数量等于所述预设处理数量。

41、本申请第二方面提供一种数据库更新系统,应用于上述第一方面所提供的数据库更新方法,所述系统包括:

42、创建模块:用于创建与待更新数据库中任一类旧父表对应的新父表;

43、将所述旧父表中与预设指令对应的所述旧子表关联所述新父表,以创建第一进程;

44、以及,根据所述第一进程创建第二进程;

45、更新模块:用于利用定时器按照预设处理周期更新所述旧父表中的所述旧子表,并将更新后的所述旧子表关联至所述新父表,以得到与所述新父表关联的新子表;

46、删除模块:用于删除所述旧父表,以得到目标数据库;所述目标数据库为本文档来自技高网...

【技术保护点】

1.一种数据库更新方法,其特征在于,包括:

2.根据权利要求1所述的数据库更新方法,其特征在于,所述创建与待更新数据库中任一旧父表对应的新父表包括:

3.根据权利要求2所述的数据库更新方法,其特征在于,所述将所述旧父表中与预设指令对应的所述旧子表关联所述新父表,以创建第一进程包括:

4.根据权利要求2所述的数据库更新方法,其特征在于,所述利用定时器在预设时间范围内按照预设处理周期和预设处理数量,循环更新所述旧父表中的所述旧子表,并将更新后的所述旧子表关联至所述新父表,以得到与所述新父表关联的新子表包括:

5.根据权利要求4所述的数据库更新方法,其特征在于,所述定时器的预设处理周期为5分钟。

6.根据权利要求4所述的数据库更新方法,其特征在于,所述利用所述定时器的定时处理函数在预设时间范围内按照预设处理周期和预设处理数量,循环更新所述第二二维数组中的所述旧子表包括:

7.根据权利要求6所述的数据库更新方法,其特征在于,所述方法还包括:

8.根据权利要求6所述的数据库更新方法,其特征在于,所述若所述当前时间在所述预设时间范围内,则利用所述定时器的定时处理函数按照预设处理周期和预设处理数量,循环更新所述第二二维数组中的所述旧子表包括:

9.根据权利要求8所述的数据库更新方法,其特征在于,所述方法还包括:

10.一种数据库更新系统,其特征在于,应用于权利要求1-9中任一项所述的数据库更新方法,所述系统包括:

...

【技术特征摘要】

1.一种数据库更新方法,其特征在于,包括:

2.根据权利要求1所述的数据库更新方法,其特征在于,所述创建与待更新数据库中任一旧父表对应的新父表包括:

3.根据权利要求2所述的数据库更新方法,其特征在于,所述将所述旧父表中与预设指令对应的所述旧子表关联所述新父表,以创建第一进程包括:

4.根据权利要求2所述的数据库更新方法,其特征在于,所述利用定时器在预设时间范围内按照预设处理周期和预设处理数量,循环更新所述旧父表中的所述旧子表,并将更新后的所述旧子表关联至所述新父表,以得到与所述新父表关联的新子表包括:

5.根据权利要求4所述的数据库更新方法,其特征在于,所述定时器的预设处理周期为5分钟。

6.根...

【专利技术属性】
技术研发人员:江攀
申请(专利权)人:武汉思普崚技术有限公司
类型:发明
国别省市:

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

1