IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库Oracle → Oracle Job不自动运行解决办法

Oracle Job不自动运行解决办法

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  oracle有一种定时调度机制,用dbms_job包来管理。

  设置的JOB就是不运行,搞得的郁闷,

  最好执行了这个才搞定 exec dbms_ijob.set_enabled(true);

  下面提供一个checklist用于检查job异常的原因:

  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’;

  If _system_trig_enabled=false, then

  alter system set "_system_trig_enabled"=TRUE scope=both;

  ^– Checked!

  4) Is the job BROKEN?

  select job,broken from dba_jobs where job=<job_number>;

  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/2005 09: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(<job_no>);), 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 unpublished 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.

  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=<job_number>;

  ^– 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=<job_number>;

  ^– This is not possible since the job never gets executed automatically.

  10) Toggle value for JOB_QUEUE_PROCESSES

  Stop and restart CJQ process(es)

  alter system set job_queue_processes=0 ;

  –<Wait for some time to ensure CJQ process stopped>

  alter system set job_queue_processes=4 ;

  Ref: Bug 2649244 (fixed by: 9015, 9203, 10201)

  ^– Done but did not help

  11) DBMS_IJOB(Non-documented):

  Last ditch effort.

  Either restart the database or try the following:

  exec dbms_ijob.set_enabled(true);

  Ref: Bug 3505718 (Closed, Not a Bug)

  Done but did not help

  These are the most common causes for this behavior.

  Solution

  The solution ended up to be the server (machine) uptime.

  Even though it was up for only 126 days, after the server was rebooted all jobs were able to execute automatically.

  To implement the solution, please execute the following steps:

  1. Shutdown all applications, including databases.

  2. Shutdown the server (machine)

  3. Restart all applications, including databases.

  4. Check that jobs are executing automatically.

  from metalink docs : 313102.1

关键词标签:Oracle,Job,解决办法

相关阅读

文章评论
发表评论

热门文章 Oracle中使用alter table来增加,删除,修改列Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制Oracle对user的访问控制

相关下载

人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限