找出正在执行的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
---------- ----------
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);
根据个人经验,这种方法并不会立即中断job的运行
。最好是找到job对应的线程kill掉。
希望这篇
oracle如何查询和停止正在运行的job的文章能够对您有所帮助,如果您觉得这篇网站维护教程有用的话,别忘了推荐给您的朋友哦!如果您有好的经验方法,不妨拿出来和大家一起分享:假如每个人都拿出一个经验,那么我们都将额外的获取一堆他人的经验。
请记住本站永久域名:(黑客防线网安服务器维护方案维护基地)Www.Rongsen.Com.Cn