千家信息网

Oracle数据库JOB失败怎么解决

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,今天小编给大家分享一下Oracle数据库JOB失败怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2025年01月20日Oracle数据库JOB失败怎么解决

今天小编给大家分享一下Oracle数据库JOB失败怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

数据库版本:11.2.0.3

测试说明:这里创建了一个日志表以及一个运行时必定出错的procedure,用于job的运行。这里只要记录下每次job执行时视图user_jobs 中的 next_date就可以推断出job 执行失败后的重试规律。

为了测试job的重试规律我做了如下工作

日志表以及序列:

  1. create table job_exec_logs (id number ,current_date date , next_date date ,failures number ,broken varchar2( 2)) ;

  2. create sequence seq_job_exec_logs_id ;

测试procedure

  1. create or replace procedure pro_my_test is

  2. begin

  3. insert into job_exec_logs select

  4. seq_job_exec_logs_id.nextval , sysdate , next_date , failures , broken from user_jobs ;

  5. commit ;

  6. execute immediate 'select * from ddddsfs' ;

  7. end ;

其中ddddsfs表示不存在的,也就是说只要运行pro_my_test存储过程到最后都会出错(但是日志表还是可以正常插入进去的)

创建job:

  1. var job number ;

  2. begin

  3. sys.dbms_job.submit(job => :job,

  4. what => 'pro_my_test ;',

  5. next_date => sysdate,

  6. interval => 'sysdate+5' );

  7. commit;

  8. end;

  9. /

其实整个测试过程没什么可说的,让job自动运行即可,但是需要等待job下次重试时间。

最后测试的结果:

  1. dexter@REPO>select trunc((next_date-lag(next_date,1) over (order by 4))*24*60) from (

  2. 2 select * from job_exec_logs

  3. 3 union all

  4. 4 select 11111, sysdate , next_date ,failures , broken from user_jobs

  5. 5 order by 4 nulls first) ;

  6. TRUNC((NEXT_DATE-LAG(NEXT_DATE,1)OVER(ORDER BY 4))*24*60)

  7. -------------------------------------------------------

  8. 2

  9. 4

  10. 8

  11. 15

  12. 32

  13. 64

  14. 128

  15. 256

  16. 512

  17. 1024

  18. 1440

  19. 1440

  20. 已选择13行。

如上结果以及笔者的其他测试可以判断出:

1、每次重试时间都是递增的,第一次2分钟,4分钟,8分钟,16分钟 ... 依此类推。

2、当超过1440分钟,也就是24小时的时候,固定的重试时间为1天。

3、笔者还经过其他实验得知,超过16次重试后,job 就会被标记为broken ,next_date 为4000-1-1,也就是不再进行job重试。

4、oracle数据库重试的时间到达设定的下次执行时间后,以设定的job执行时间为准。

以上就是"Oracle数据库JOB失败怎么解决"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

时间 测试 数据 数据库 知识 篇文章 运行 也就是 内容 笔者 结果 规律 过程 志表 不同 很大 依此类推 没什么 也就是说 大部分 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 gpu服务器上的显卡 汽车远程软件开发公司 mysql数据库自动保存 将图片存到数据库中 迅雷网日本极品翘臀数据库 肠道菌群的数据库生信挖掘 软件开发资金流向 陀螺世界系统软件开发 深圳新时代网络技术有限公司 宁波软件开发公司靠谱吗 吉安主机服务器要多少钱 上海浦发银行软件开发 图书馆数据库是开放获取吗 网络安全和国家安全的观后感 我国是那一年成立中央网络安全 郴州软件开发的公司 湖北人工智能软件开发哪家便宜 控制台连接数据库 ar试戴软件开发 内蒙古君安网络技术怎么样 邮件服务器优先级 软件开发提成多少 梦幻西游桂花醉服务器 数据库中无法查出数据 金银湖国家网络安全谷详细地址 上海安卓软件开发怎样收费 联通手机到韩国无服务器 时时彩软件开发教学 团县委召开网络安全工作会 北京管理软件开发团队
0