Oracle Job不能正常运行的问题解决思路

JobsNotExecuting Automatically

Symptoms

Jobs arenolonger executing automatically.

Ifforced(execdbms_job.run(<enter here jobnumber>);),theseexecutefine.

Cause

Tryingthemost common reasons why jobs don't execute automatically and as scheduled:

 

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=<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/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(<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 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;

if the job is running,check the next two view v$access and v$locked_object to

find out what resources which the job is using are locking by other process.

^-- 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=<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

Set job_queue_processes=0, wait some time and then and set it back to the original value:

alter system set job_queue_processes=0 ;

--<Wait for some time>

alter system set job_queue_processes=4 ;

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

^-- 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)

@Note 90989.1 (Using DBMS_IJOB) INTERNAL NOTE

 

 

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.

 

原文出自:http://space.itpub.net/7813229/viewspace-610829

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据不同步的问题可能出现在以下几个方面: 1. 网络问题:如果两个数据库之间的网络不稳定或者存在丢包等问题,就可能导致数据同步不及时或者丢失。 2. 数据库配置问题:如果两个数据库的配置不一致,比如说时间同步、时区设置等等,也可能导致数据同步不正确。 3. 数据库版本问题:如果两个数据库的版本不一致,就可能导致数据同步不兼容或者出现错误。 4. 数据库设计问题:如果两个数据库的设计不一致,比如说字段类型不同、表结构不同等等,也可能导致数据同步不正确。 为了解决Oracle数据不同步的问题,可以采取以下思路: 1. 检查网络连接:首先要确定两个数据库之间的网络连接是否正常,可以使用ping命令或者其他网络测试工具进行测试。 2. 检查数据库配置:确定两个数据库的配置是否一致,比如说时间同步、时区设置等等。 3. 检查数据库版本:确定两个数据库的版本是否一致,如果版本不一致,可以考虑升级或者降级。 4. 检查数据库设计:确定两个数据库的设计是否一致,比如说字段类型、表结构等等,如果不一致,可以考虑进行数据转换或者调整设计。 5. 使用Oracle Data Guard:Oracle Data Guard是Oracle提供的一种数据保护和灾难恢复解决方案,可以使用它来实现数据同步和备份。 总之,要解决Oracle数据不同步的问题,需要综合考虑网络、配置、版本和设计等多个方面,找到问题的根源并采取相应措施来解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值