您好,登錄后才能下訂單哦!
背景:數據庫出現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);
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。