oracle调度不见了,Oracle功课job 没有自动调度起来

当前位置:我的异常网» 编程 » Oracle功课job 没有自动调度起来

Oracle功课job 没有自动调度起来

www.myexceptions.net  网友分享于:2013-09-02  浏览:3次

Oracle作业job 没有自动调度起来

Oracle作业job 没有自动调度起来

问题:有一同事报过来,说有两个job已经近一周没有自动调起了,让我帮忙解决。

1、检查:

(1)在生产库中检查,其他的job都能自动调度

(2)select * from all_jobs where job in(2704,2706); 检查正常,并无异常 (dba_jobs或PL/SQL Developer DBMS_Jobs 也可查看)

(3)select * from dba_jobs_running where job in(2704,2706);  在其列表中

结论:进程挂死未完成,导致不能自动调度!

2、解决:先备份两job的内容再将job删除,然后将进程杀掉,并重建

(1)利用上面查出job运行列表中的sid 如 3695,并查出哪些进程需要杀掉,查询语句如下:

select 'call superkill('||a.sid||','||a.SERIAL#||');' KILL_SID,

'kill -9 '||A.PROCESS||';'KILL_PID,A.SID,A.SERIAL#,A.STATUS,   A.SCHEMANAME,A.USERNAME,A.MACHINE,OSUSER,A.PROCESS,A.PROGRAM,A.TERMINAL,

A.SERVICE_NAME,A.LOGON_TIME, A.OWNERID,

D.SQL_TEXT,D.SQL_FULLTEXT

from gv$session a, v$sql d

where a.SQL_ADDRESS=d.ADDRESS(+)

and (a.SCHEMANAME = 'REPORT' or a.USERNAME= 'REPORT')

and a.sid=3695

order by a.MACHINE;

杀进程:

(1)上面的superkill如下:

create or replace procedure system.superkill(SESSION_ID BINARY_INTEGER,SERIAL_NUM

BINARY_INTEGER) is

begin

execute immediate 'alter system disconnect session '''||SESSION_ID||','||SERIAL_NUM||'''

immediate' ;

EXCEPTION

WHEN OTHERS

THEN

RAISE;

end superkill;

(2)也可直接 alter system kill session 'sid,serial#';

上面两个原理都差不多。

(3)重建job

如job:2706 的重建:

begin

sys.dbms_job.isubmit(job => 2706,

what => 'declare

vc_out varchar2(2000);

begin

SP_SAP_NEWINCOME_ALL(to_char(SYSDATE-1,''yyyymmdd''),to_char(SYSDATE-1,''yyyymmdd''));

pkg_dic_day_report_2011.Dic_day_all_report_2011(to_char(SYSDATE-1,''yyyymmdd''));

pkg_dic_day_report_2010.DiC_Day_Move_Busi(vc_out,to_char(SYSDATE-1,''yyyymmdd''));

pkg_dic_day_report_2010.DiC_Pst_YW(vc_out,to_char(SYSDATE-1,''yyyymmdd''));

end;',

next_date => trunc(SYSDATE)+1+17/24,

interval => 'trunc(SYSDATE)+1+17/24');

commit;

end;

/

第二天检查两job都已正常自动调度。

文章评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值