解決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定時任務即可恢復正常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章