ORA-12005: may not schedule automatic refresh for times in the past

来源:互联网 发布:c语言函数大全 chm 编辑:程序博客网 时间:2024/06/08 19:55

ORA-12012: error on auto execute of job 125

ORA-12005: may not schedule automatic refresh for times in the past

 

ORA-12012: 自动执行作业 125 出错

ORA-12005: 不能安排过去时间的自动刷新


 dba_jobs包含以下几个主要的字段:

(a)LAST_DATE:Date on which this job last successfully executed--job执行成功的时间,即1.job执行成功;2.是job执行完毕的时间
(b)LAST_SEC:同LAST_DATE
(c)THIS_DATE:Date that this job started executing (usually null if not executing)--没有job在执行的时候,该字段为空。若有job正在运行,这个时间是job的开始执行时间。
(d)THIS_SEC:同THIS_DATE
(e)NEXT_DATE:Date that this job will next be executed--job下次执行时间点。
(f)NEXT_SEC:同NEXT_DATE
(g)INTERVAL:A date function, evaluated at the start of execution, becomes next NEXT_DATE--重点的说明一下这个参数,这个参数涉及到next date的计算,next就是根据job的开始执行时间点,结合interval中的时间函数,算出来的。

比如,某个job开始执行时间8月1日23:55,那么如果interval是trunc(sysdate)+1435/1440,因此,next date就是把job的开始时间23:55,代入到interval中的sysdate,得到的结果就仍然是8月1日的23:55。而next date的更新,是一次job完成时更新的,比如job在8月2日的0:15完成,于是在更新next date的时候,就发现next date的时间晚于当前的时间,于是就报错may not schedule automatic refresh for times in the past。而事实上,job应该是成功执行了的。

为了解决这个报错,interval改成trunc(sysdate+1)+1435/1440。

注意:

如果一个job执行failure后,oracle会尝试重新执行,若16次尝试后还是failure,则oracle会将这个job的broken设为true,即停掉这个job。
当job失败后,系统会在1分钟后重新运行这个JOB,如果还是失败,就在和第1次失败间隔2分钟的时候继续运行这个JOB,如果还是失败,就在和 第2次失败相隔4分钟后运行这个JOB,直到 失败间隔时间≥interval(JOB正常工作的时间设置参数)后,系统检测的时间间隔就为interval.直到第16次失败就会将这个job置为 broken。

--本篇文章转自:http://blog.163.com/ansel_zlh/blog/static/103727172008825113225901/

http://gxg353.blog.sohu.com/236100357.html

http://blog.sina.com.cn/s/blog_60b1f55d01014mje.html

阅读全文
0 0
原创粉丝点击