彪悍人生无需过多解释!
分类: Oracle
2011-03-25 09:39:53
1) Instance in RESTRICTED SESSIONS mode? Check if the instance is in restricted sessions mode: select instance_name,logins from v$instance; If logins=RESTRICTED, then: alter system disable restricted session; ^-- Checked! |
2) JOB_QUEUE_PROCESSES=0 Make sure that job_queue_processes is > 0 show parameter job_queue_processes ^-- Checked! |
3) _SYSTEM_TRIG_ENABLED=FALSE Check if _system_enabled_trigger=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’; ^-- Checked! |
4) Is the job BROKEN? select job,broken from dba_jobs where job=; If broken, then check the alert log and trace files to diagnose the issue. ^-- Checked! The job is not broken. |
5) Is the job COMMITted? Make sure a commit is issued after submitting the job: DECLARE X NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT ( job => X ,what => 'dbms_utility.analyze_schema (''SCOTT'',''COMPUTE'',NULL,NULL,NULL);' ,next_date => to_date('08/06/200509:35:00','dd/mm/yyyy hh24:mi:ss') ,no_parse => FALSE ); COMMIT; END; / If the job executes fine if forced (i.e., exec dbms_jobs.run();), then likely a commit is missing. ^-- Checked! The job is committed after submission. |
6) UPTIME > 497 days Check if the server (machine) has been up for more than 497 days: For SUN , use 'uptime' OS command. If uptime>497 and the jobs do not execute automatically, then you are hitting bug 3427424 (Jobs may stop running after 497 days uptime) which is fixed in 9206 and A102 ^-- Checked! The server in this case has been up 126 days only |
7) DBA_JOBS_RUNNING Check dba_jobs_running to see if the job is still running: select * from dba_jobs_running; ^-- Checked! The job is not running. |
8) LAST_DATE and NEXT_DATE Check if the last_date and next_date for the job are proper: select Job,Next_date,Last_date from dba_jobs where job=; ^-- NEXT_DATE is porper, however LAST_DATE is null since the job never executes automatically. |
9) NEXT_DATE and INTERVAL Check if the Next_date is changing properly as per the interval set in dba_jobs: select Job,Interval,Next_date,Last_date from dba_jobs where job=; ^-- This is not possible since the job never gets executed automatically. |