您的位置:首页 > 财务软件 > 正文

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

2018-09-10 11:03     来源:中国会计网     

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

微信公众号

萨恩课堂

咨询电话:400-888-3585

在线客服:点击咨询

©2001-2023 中国会计网(CANET) All Rights Reserved 运营支持:北京萨恩教育科技有限公司

实名网站认证 京公网安备11010502037473号 京ICP备12013966号