201920 Oracle 停止job、停止session

最近折腾oracle数据库
发现: select * from dba_jobs_running, 对应的几个job,next time 小于当前日期,所以这几个job一直在运行。
那么,怎么把这几个job给干掉呢?

一、在sql command中,执行:

 sql> exec dbms_job.broken(1111,TRUE);

将 job 先broken
这个效果,就是让job 不再运行了。
可以看到,这个job的next time 已经变成 4000/1/1

二、sqlplus 中,执行:

select a.spid,b.sid,b.serial#
from v$process a ,v$session b
where a.addr = b.paddr
and sid in (select sid from dba_jobs_running);

记录下对应的spid

三、在windows 的 cmd中执行:

c:\Users\Administratror> orakill 数据库实例名 spid

四、再到sqlplus中查询:

select * from dba_jobs_running;

直到没有正在执行的jobs

需要提出的是,过程二和过程三执行完后要等待一会儿,过程四才能真正没有正在执行的job。如果等待了过程四都还有正在执行的job,那就重复执行过程二和过程三吧~~
这点非常关键。

五、sql command中,执行:

sql> exec dbms_job.remove(1111);

这样就把这个job给删除掉了。

ps:小技巧:
plsql->Tools->Sessions 可以看到当前所有的sessions,还可以筛选处于ACTIVE的session

用这个办法 kill session(spid)也非常有效!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值