还是Oracle作业的问题:没出错,也没执行?!

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
服务器:
HP rx2600
4*CPU(Intel®Itanium®2处理器)
2G内存
HP-UX 11i v 2
Oracle9.2.0.2(job_queue_processes=50)
布署了5个作业:
一个执行间隔为5分钟:05、10、15、20、25。。。。。。
一个为1小时:1:00、2:00、3:00、4:00。。。。。
其余为1天:分别为0:10、0:20、1:00
部署完后N(5分钟、1小时间隔的作业)个周期运行正常,做了N多的操作(包括手工运行间隔为1天的作业的存储过程,)后,发现:
间隔为1小时的作业竟然没有执行(last_date+last_sec,next_date+next_sec没变,而服务器的系统时间已超过了next_date+Next_sec),也没出错(Failures=0,broken=N),如果不干预,这个作业就被永久的停掉了(下一次执行时间为以前的时间)!
想请教各位:究竟什么因素会造成这种结果?
多谢!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
沉下去了,资金提一下
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
把你的submit job的代码贴出来!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
--------------------------------------------------------------------------------------------------------------------------------
DECLARE
jobno number;
--间隔 5分钟
INTERVAL_M5 CONSTANT VARCHAR2(100) := '/*5:Mins*/trunc(sysdate,''mi'')-MOD(to_number(to_char(sysdate,''mi'')),5)/1440+5/60/24';
--间隔1小时
INTERVAL_H1 CONSTANT VARCHAR2(100) := '/*1:Hrs*/trunc(sysdate,'HH24')+1/24';
--间隔一天
INTERVAL_D1 CONSTANT VARCHAR2(100) := '/*1

ays*/trunc(sysdate)+1+10/60/24';
NEXT_DATE_01DATE:= trunc(sysdate,'MI')+5/60/24;
NEXT_DATE_02DATE:= trunc(sysdate,'HH24')+1/24;
NEXT_DATE_03DATE:= trunc(sysdate)+1+1/24;
NEXT_DATE_04DATE:= trunc(sysdate)+1+20/60/24;
NEXT_DATE_05DATE:= trunc(sysdate)+1+10/60/24;
BEGIN
--添加实时数据同步作业(间隔5分钟)
DBMS_JOB.SUBMIT(job => jobno, what => 'DATA_SYNC.Sync_AllRealTimeData;', next_date => NEXT_DATE_01, interval => INTERVAL_M5);
--添加历史数据同步作业(间隔1小时)
DBMS_JOB.SUBMIT(job => jobno, what => 'DATA_SYNC.Sync_AllHistoryData;', next_date => NEXT_DATE_02, interval => INTERVAL_H1);
--添加数据保护作业(间隔1天)
DBMS_JOB.SUBMIT(job => jobno, what => 'DATA_SYNC.Protect_AllDataSync;', next_date => NEXT_DATE_03, interval => INTERVAL_D1);
--添加日负荷极值计算作业(间隔1天)
DBMS_JOB.SUBMIT(job => jobno, what => 'DATA_SYNC.DayDataStatistics;', next_date => NEXT_DATE_04, interval => INTERVAL_D1);
--添加数据清除作业(间隔1天)
DBMS_JOB.SUBMIT(job => jobno, what => 'DATA_SYNC.DataClear;', next_date => NEXT_DATE_05, interval => INTERVAL_D1);
COMMIT;
END;
--------------------------------------------------------------------------------------------------------------------------------
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层

回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
看看alterlog有没有记录什么? 会不会是job_queue_process太小了
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
job_queue_process缺省是10,改为了50
当时查了trace,没发现什么异常!——服务器在客户那里,现在看不到呢
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
先手工把next date改一下
是否该job的执行时间比较长?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
husthxd:
改了,还没来得及去看运行情况呢。
这个作业的执行时间不长:10秒内肯定完成。
不知道以前有没有人碰到过这种情况,是不是跟服务器硬件、操作系统、oracle版本有关系?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
广告贴让我沉下来,我把自己顶上去!~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行