技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于Crontab自动实现存储过程调度方法与流程  >  正文

一种基于Crontab自动实现存储过程调度方法与流程

  • 国知局
  • 2024-09-11 14:53:22

本发明涉及数据库存储领域,尤其涉及一种基于crontab自动实现存储过程调度方法。

背景技术:

1、当前各行各业的实际业务中,往往需要周期性的数据,如按季度报告企业的盈利情况等。数据库的存储过程中封装了一系列的计算方法,可以按照需求计算出相关的数据指标。但数据库软件并不能自动化的定时调用存储过程,即无法定时的计算相关的数据指标。人工调用较为繁琐,无法满足部分周期性较短的数据的时效性,如每五分钟同步客户信息等。

2、crontab定时工具可以周期性的调用shell脚本,shell脚本中也可使用sqlplus连接数据库并使用动态sql执行存储过程。基于以上技术背景,可以使用shell脚本将存储过程自动化的调用,并将调用过程的统计信息收集起来,方便后续维护使用。

3、当前各数据库中存储过程的调用需要每次手工使用call命令执行,并不能自动化的定时执行,且手工执行存储过程的审计数据往往需要联系数据库管理员才可以查询,使得开发人员不能及时监控程序运行状况,获取审计数据的过程繁琐,消耗了大量的时间和精力。基于以上问题,提出了一种基于crontab自动实现存储过程调度的方法及工具用于解决这些问题。

4、现有的技术缺点:

5、1)人工调用存储过程较为繁琐,不能自动化调用,徒增了日常工作量;

6、2)无法满足部分周期性较短的数据的时效性,如每五分钟同步客户信息等;

7、3)调用存储过程的数据库审计数据获取繁琐,往往需要联系数据库管理员,无法及时的监控存储过程的运行情况。

技术实现思路

1、鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种基于crontab自动实现存储过程调度方法。

2、根据本发明的一个方面,提供了一种基于crontab自动实现存储过程调度方法,所述调度方法包括:

3、确认定时调度任务重存储过程的数量、名称及先后顺序,并配置在数据库配置表中;

4、shell总调模块通过sqlplus登录oracle数据库读取数据库中的存储过程配置表信息,将调用的程序按执行顺序进行排序后遍历解析;

5、日期翻盘的处理是在数据库中设计一张任务运行时间表;

6、使用动态sql的execute immediate命令将上述存储过程按顺序串行化执行;

7、配置crontab,将调度任务的运行频率、调用的shell脚本及路径和脚本运行日志及路径三项内容配置在crontab配置文件中。

8、可选的,所述确认定时调度任务重存储过程的数量、名称及先后顺序,并配置在数据库配置表中的存储过程配置表在数据库中的表头信息包括:

9、任务编号、任务名称、执行顺序、存储过程中文名称、存储过程英文名称、是否有效、创建时间及最后修改时间。

10、可选的,所述shell总调模块通过sqlplus登录oracle数据库读取数据库中的存储过程配置表信息,将调用的程序按执行顺序进行排序后遍历解析之后还包括:将读取的信息插入数据库中的运行状态表。

11、可选的,所述运行状态表在数据库中的表头信息包括:任务编号、任务名称、任务日期、执行顺序、存储过程中文名称、存储过程英文名称、执行开始时间、执行结束时间、执行状态和错误表述。

12、可选的,所述运行时间表的表头信息包括:

13、任务编号、任务名称、任务日期、本期任务运行状态、创建时间和最后修改时间。

14、可选的,所述使用动态sql的execute immediate命令将上述存储过程按顺序串行化执行具体包括:

15、存储过程名称及入参均采用参数传入,其中日期参数为存储过程配置表中的任务日期;

16、单个存储过程执行开始时,向数据库运行状态表插入运行日志,记录开始时间,并将运行状态打标为“p-进行中”;

17、待存储过程成功执行结束后,获取返回信息,将结束时间记录,并将运行状态打标为“s-成功完成”,任务运行时间表中的日期加一;

18、若调用过程中发生错误反馈,将运行状态打标为“f-任务失败”,并将反馈信息记录,任务运行时间表中日期不变。

19、可选的,所述最后修改时间具体包括:任务执行成功执行完成后,日期加一,运行失败,则日期不变。

20、本发明提供的一种基于crontab自动实现存储过程调度方法,所述调度方法包括:确认定时调度任务重存储过程的数量、名称及先后顺序,并配置在数据库配置表中;shell总调模块通过sqlplus登录oracle数据库读取数据库中的存储过程配置表信息,将调用的程序按执行顺序进行排序后遍历解析;日期翻盘的处理是在数据库中设计一张任务运行时间表;使用动态sql的execute immediate命令将上述存储过程按顺序串行化执行;配置crontab,将调度任务的运行频率、调用的shell脚本及路径和脚本运行日志及路径三项内容配置在crontab配置文件中。方便数据库运维人员和开发人员查询存储过程的执行情况,同时减少的日常工作量,满足了周期性较短数据的时效性。

21、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

技术特征:

1.一种基于crontab自动实现存储过程调度方法,其特征在于,所述调度方法包括:

2.根据权利要求1所述的一种基于crontab自动实现存储过程调度方法,其特征在于,所述确认定时调度任务重存储过程的数量、名称及先后顺序,并配置在数据库配置表中的存储过程配置表在数据库中的表头信息包括:

3.根据权利要求1所述的一种基于crontab自动实现存储过程调度方法,其特征在于,所述shell总调模块通过sqlplus登录oracle数据库读取数据库中的存储过程配置表信息,将调用的程序按执行顺序进行排序后遍历解析之后还包括:将读取的信息插入数据库中的运行状态表。

4.根据权利要求3所述的一种基于crontab自动实现存储过程调度方法,其特征在于,所述运行状态表在数据库中的表头信息包括:任务编号、任务名称、任务日期、执行顺序、存储过程中文名称、存储过程英文名称、执行开始时间、执行结束时间、执行状态和错误表述。

5.根据权利要求1所述的一种基于crontab自动实现存储过程调度方法,其特征在于,所述运行时间表的表头信息包括:

6.根据权利要求1所述的一种基于crontab自动实现存储过程调度方法,其特征在于,所述使用动态sql的execute immediate命令将上述存储过程按顺序串行化执行具体包括:

7.根据权利要求5所述的一种基于crontab自动实现存储过程调度方法,其特征在于,所述最后修改时间具体包括:任务执行成功执行完成后,日期加一,运行失败,则日期不变。

技术总结本发明提供的一种基于Crontab自动实现存储过程调度方法,所述调度方法包括:确认定时调度任务重存储过程的数量、名称及先后顺序,并配置在数据库配置表中;Shell总调模块通过sqlplus登录oracle数据库读取数据库中的存储过程配置表信息,将调用的程序按执行顺序进行排序后遍历解析;日期翻盘的处理是在数据库中设计一张任务运行时间表;使用动态SQL的EXECUTE IMMEDIATE命令将上述存储过程按顺序串行化执行;配置Crontab,将调度任务的运行频率、调用的Shell脚本及路径和脚本运行日志及路径三项内容配置在Crontab配置文件中。方便数据库运维人员和开发人员查询存储过程的执行情况,同时减少的日常工作量,满足了周期性较短数据的时效性。技术研发人员:王雯景受保护的技术使用者:北银金融科技有限责任公司技术研发日:技术公布日:2024/9/9

本文地址:https://www.jishuxx.com/zhuanli/20240911/292469.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。