Jobs Not Executing Automatically (Doc ID 313102.1)
适用于:
Oracle Database - Enterprise Edition - Version 9.2.0.3 to 10.2.0.4 [Release 9.2 to 10.2]
Information in this document applies to any platform.
症状:
job已经很长时间没有自动运行了。
如果强制执行(exec dbms_job.run(<enter here job number>);), 这些job是能成功执行的。
原因:
按照如下步骤检查job无法自动执行的原因:
1) instance处于RESTRICTED SESSIONS 模式?
select instance_name,logins from v$instance;
If logins=RESTRICTED, then:
alter system disable restricted session;
--->注意,正常情况下,logins应该返回: ALLOWED
2)JOB_QUEUE_PROCESSES=0
show parameter job_queue_processes
一定要让job_queue_processes这个参数大于零。
3)隐含参数_SYSTEM_TRIG_ENABLED=FALSE
col parameter format a25
col value format a15
select a.ksppinm parameter,b.ksppstvl value from x$ksppi a,x$ksppcv b
where a.indx=b.indx and ksppinm=‘_system_trig_enabled‘;
如果 _system_trig_enabled=false, 那么执行如下命令改为true
alter system set "_system_trig_enabled"=TRUE scope=both;
4)job 被broken了 ?
select job,broken from dba_jobs where job=<job_number>;