问题现象:
报警文件中一直在报下面的错误:
Thu Jul 26 23:04:42 2012 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31365.trc: ORA-12012: 自动执行作业 23 出错 ORA-12005: 不能安排过去时间的自动刷新 Thu Jul 26 23:06:42 2012 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31383.trc: ORA-12012: 自动执行作业 23 出错 ORA-12005: 不能安排过去时间的自动刷新 Thu Jul 26 23:10:43 2012 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31417.trc: ORA-12012: 自动执行作业 23 出错 ORA-12005: 不能安排过去时间的自动刷新 Thu Jul 26 23:18:43 2012 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31478.trc: ORA-12012: 自动执行作业 23 出错 ORA-12005: 不能安排过去时间的自动刷新 Thu Jul 26 23:34:44 2012 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_31614.trc: ORA-12012: 自动执行作业 23 出错 ORA-12005: 不能安排过去时间的自动刷新
问题解决:
该问题应该是job执行后,计算job的下一个执行时间时,发现比当前的时间还早,就报这个错误:
检查23号job
select job,last_date,next_date,interval from dba_jobs;
23 2012-7-28 0:06:47 00:06:47 2012-7-28 23:04:37 23:04:37 (trunc(sysdate)+25/26)
主要为这个间隔时间为 (trunc(sysdate)+25/26)
select (trunc(sysdate)+25/26) from dual;
这个时间为当天的 23:04:37 ,所以无法执行
修改为'trunc(sysdate)+25/24'即可.
具体修改过程为:
Execute DBMS_JOB.INTERVAL (23, 'trunc(sysdate)+25/24'); |