时间:2021-07-01 10:21:17 帮助过:111人阅读
杀Session是最直接最有效的方式,但是记得一定要加immediate,否则你要等Oracle自己回收Session时,你的job才能彻底死,你肯定不相等,也等不起
alter system kill session ‘980,33237‘ immediate;
有同学说杀掉Session后,过一会job自己又启动了,那是因为你的job又到了执行的时间点,例如你设置的job每5分钟执行一次,你现在给他杀了,过5分钟,它自己就又运行了。如果希望它不在运行,job的enabled就不要勾选。
如果你已经按照网上各种攻略杀了一遍,并且
但是你在plsql developer中的runing job里还能看到它活着
那么来这里查一查
select * from v$scheduler_running_jobs;
一看,它依然活着,你再试试
begin
DBMS_JOB.BROKEN(2877536,true);
commit;
end;
结果
ORA-23421:job number 2877536 is not a jon in the job queye
alter system kill session ‘980,33237‘ immediate;
结果
ORA-00030:User session ID does not exist.
感觉要疯了,按照网上的说法,去操作系统上杀?前提是你能连得到,在客户现场,你不一定有连Oracle服务器的权限。但是只要你有sys用户话,还有一线生机。
执行一下如下两条语句,以sys dba
ALTER INDEX I_JOB_JOB REBUILD ONLINE;
ALTER INDEX I_JOB_NEXT REBUILD ONLINE;
然后,你再杀一下Session试试,发现可以了,不报ORA-00030,但是这次千万记得加上immediate,切记切记!
如何正确的杀死Oracle Job
标签:启动 com comm lock 运行 run ora 千万 服务器