首页 > 数据库 > Oracle > 9i中中断job运行经历
同事昨晚加班,数据库脚本没有跑完,回去休息前,在数据库中建了几个job自动执行。今天来了又发现有问题,要求终止job运行,我想这个简单,kill掉相应session,来的直接又快。可“理想和现实总是有差距的”,kill时都成功,随后一查,job还在运行,郁闷!试一下dbms_job.broken吧,执行successful了,可job仍旧running,太恼人了!kill -9 后台进程,就不信稿不定了!select/*+rule*/ * from dba_jobs_running->session id->....spid->kill -9 spid,回头再确认一下。。。。。。,怎么还再运行,我晕了!无意中发现一处问题,dba_jobs中的broken字段怎么还是N呢,分明是用dbms_job.broken改掉了!这回用图形工具改一下吧,很快修改成功,再kll -9,Ok,job停了。
怎么回事呢?图形工具和执行语句有差别吗?进入图形工具,修改一个job的broken标记,view sql,sql中borken之前还执行了change,这是原因吗?呵呵,实际经过验证,这不是问题的症结。我操作出现问题的症结是broken后没有commit,一时迷糊,自己骗自己!
这里需要说明的是:job对应的spid都是j00*的进程,可以kill -9,包括j000,和有些论坛上说的不一样。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25540/viewspace-1009746/ ,如需转载,请注明出处,否则将追究法律责任。