1. 程式人生 > >ORACLE系列腳本3:救命的JOB處理腳本

ORACLE系列腳本3:救命的JOB處理腳本

恢復數據庫 ID obs 導致 腳本 job serial lte 快速

背景:數據庫出現JOB長期執行不完導致資源耗費過大的情況通過下列預計可以快速定位JOB,快速幹預處理,恢復數據庫性能。通過下列語句長期運維?T以上數據庫?個,屢試不爽。

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

停止該JOB的執行
SELECT SID,SERIAL# FROM V$SESSION WHERE SID=‘130‘;
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


    12        116
    16        117

2,查詢正在運行的job的信息
SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID=‘12‘;
SID SERIAL#


    12          4

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID=‘16‘;

SID SERIAL#


    16          1

3,利用查詢出來的job信息將job結束掉
SQL> ALTER SYSTEM KILL SESSION ‘12,4‘;
System altered.
SQL> ALTER SYSTEM KILL SESSION ‘16,1‘;
System altered.
4,如果不希望運行上述job的話,可以將job設置為broken.
EXEC DBMS_JOB.BROKEN(116,TRUE);
EXEC DBMS_JOB.BROKEN(117,TRUE);

ORACLE系列腳本3:救命的JOB處理腳本