解决ORACLE.EXE (J000)导致的JOB卡死无法执行

有时候安装在windows下的Oracle的JOB定时任务在调用存储过程时会因为ORACLE.EXE (J000)或ORACLE.EXE (J001)进程出现,导致JOB卡死无法执行。

 

进程代码和相关代码的含义见我的另外一篇博客:

https://blog.csdn.net/dante_feng/article/details/90232763

 

ORACLE.EXE (J000)

job 具体执行进程,接受 CJQ0 分发的 job 任务,可能存在J00n的情况如J001。

 

下面说一下JOB因为J000进程导致卡死无法执行的解决方法:

通过sql查询是否存在导致JOB卡死的进程的spid:

select spid from v$session s,v$process p where s.paddr=p.addr and s.PROGRAM like 'ORACLE.EXE%' and s.ACTION = '(JOB名)' and s.BLOCKING_SESSION_STATUS = 'UNKNOWN';

例如查询到的SPID为 1234,我们需要通过这个SPID来杀掉卡死的进程。

 

一般情况下可能存在使用Oracle层面的kill语句杀不掉进程的情况,我们可以通过查询到的spid使用操作系统命令行来kill掉进程:

我们可以调出windows的cmd命令行,使用如下命令杀掉卡死的进程:

orakill orcl (SPID)

例如:orakill orcl 1234

其中orcl为数据库的实例名,可按需进行修改。

 

杀掉进程后JOB定时任务即可恢复正常。

你可能感兴趣的:(oracle,数据库)