殺Session是最直接最有效的方式,可是記得必定要加immediate,不然你要等Oracle本身回收Session時,你的job才能完全死,你確定不相等,也等不起sql
alter system kill session '980,33237' immediate;
有同窗說殺掉Session後,過一會job本身又啓動了,那是由於你的job又到了執行的時間點,例如你設置的job每5分鐘執行一次,你如今給他殺了,過5分鐘,它本身就又運行了。若是但願它不在運行,job的enabled就不要勾選。服務器
若是你已經按照網上各類攻略殺了一遍,而且session
可是你在plsql developer中的runing job裏還能看到它活着ide
那麼來這裏查一查操作系統
select * from v$scheduler_running_jobs;
一看,它依然活着,你再試試code
begin DBMS_JOB.BROKEN(2877536,true); commit; end;
結果blog
ORA-23421:job number 2877536 is not a jon in the job queyeit
alter system kill session '980,33237' immediate;
結果io
ORA-00030:User session ID does not exist.class
感受要瘋了,按照網上的說法,去操做系統上殺?前提是你能連獲得,在客戶現場,你不必定有連Oracle服務器的權限。可是隻要你有sys用戶話,還有一線生機。
執行一下以下兩條語句,以sys dba
ALTER INDEX I_JOB_JOB REBUILD ONLINE; ALTER INDEX I_JOB_NEXT REBUILD ONLINE;
而後,你再殺一下Session試試,發現能夠了,不報ORA-00030,可是此次千萬記得加上immediate,切記切記!