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掉。

80+行业真账实操,零基础会计快速上岗!出纳、做账、报税、报表、Excel、财务软件、财务经理七大系列课程
最新资讯
会计考试提醒、政策发布关注微信公众号:
中国会计网
长按保存图片
微信打开扫一扫
报考咨询、进群领资料
免费资料
财税干货
会计表格
财务模板
excel工具
免费课程
考试资料