您的位置:首页 > 数据库 > Oracle

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

2015-04-06 16:37 375 查看


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

  找出正在执行的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掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: