Stop runnung job

oo0yuki0oo發表於2011-08-13

找出正在執行的JOB編號及其會話編號
SELECT SID,JOB FROM DBA_JOBS_RUNNING;


停止該JOB的執行
SELECT SID,SERIAL# FROM V$SESSION WHERE SID='&SID';
ALTER SYSTEM KILL SESSION '&SID,&SERIAL';
EXEC DBMS_JOB.BROKEN(&JOB,TRUE);

例項分析:

1,查詢正在執行的Job,透過查詢有兩個,和程式佔用較多的是兩個ORACLE程式符合。

SQL> SELECT SID,JOB FROM DBA_JOBS_RUNNING;

SID JOB
---------- ----------
109 4
2,查詢正在執行的job的資訊

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID='109';

SID SERIAL#
---------- ----------
109 43184

3,利用查詢出來的job資訊將job結束掉

SQL> alter system kill session '109,43184';

System altered.

4,如果不希望執行上述job的話,可以將job設定為broken.

EXEC DBMS_JOB.BROKEN(116,TRUE);

EXEC DBMS_JOB.BROKEN(117,TRUE);

刪除job用 exec dbms_job.remove(116);

[@more@]

另外補一個查當前死鎖的

select t2.username||'  '||t2.sid||' 
'||t2.serial#||'  '||t2.logon_time||' 
'||t3.sql_text
from v$locked_object t1,v$session t2,v$sqltext t3
where t1.session_id=t2.sid
and t2.sql_address=t3.address
order by t2.logon_time;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8337095/viewspace-1053798/,如需轉載,請註明出處,否則將追究法律責任。

相關文章