24周年

财税实务 高薪就业 学历教育
APP下载
APP下载新用户扫码下载
立享专属优惠
安卓版本:8.6.96 苹果版本:8.6.96
开发者:北京正保会计科技有限公司
应用涉及权限:查看权限>
APP隐私政策:查看政策>

oracle如何查询和停止正在运行的job

来源: 华军资讯 编辑: 2010/10/27 10:19:43  字体:

  找出正在执行的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掉。

我要纠错】 责任编辑:zoe

实务学习指南

回到顶部
折叠
网站地图

Copyright © 2000 - www.chinaacc.com All Rights Reserved. 北京正保会计科技有限公司 版权所有

 京ICP备20012371号-7 出版物经营许可证 京公网安备 11010802044457号