本文共 550 字,大约阅读时间需要 1 分钟。
根据以下语句检查 当前正在跑的SQL,找到对应job的spid
select * from dba_job_running;
SELECT distinct d.spid,a.sid,e.event,b.status,c.sql_id,C.SQL_TEXT,B.USERNAME,B.OSUSER,B.MACHINE,B.PROGRAMFROM V$SESS_IO A,V$SESSION B,V$SQL C,V$PROCESS D,v$session_wait eWHERE A.SID=B.SID AND B.SQL_HASH_VALUE=C.HASH_VALUE and B.sid=E.sid AND B.PADDR=D.ADDR and b.status='ACTIVE' order by sql_text;
在主机上ps -ef|grep spid确认名称为ora_jxxx格式进程号
此时kill -9 spid后,执行上述查询语句,发现job有启动新的进程。
这时需先备份原先创建job的脚本,可通过pl/sql查看代码获取,也可以用其它办法。
备份后,删除该job,
再在操作系统上kill -9 spid
最后检查job已经被kill掉。
根据之前备份的脚本重新创建job即可。
转载地址:http://wksof.baihongyu.com/