如何谋杀掉Oracle会话进程
有一些死锁进程,用alter system kill session 'sid, serial#';杀掉回话后,异常退出无法释放进程,需要在系统级别kill。
执行下面的语句获得进程(线程)号:
select spid, osuser, s.program from v$session s, v$process p
where s.paddr = p.addr and s.sid = &sid;
在操作系统级别kill:Windows > orakill <sid> spid
Linux # kill -9 spid
杀掉所有的Oracle用户进程
a、windows的环境,执行如下SQL,并把结果存成.bat的文件,比如kill.bat, 执行一下kill.bat就可以了。
select 'orakill '||sid||' '||spid as thread from sys.v_$process p, sys.v_$session s
where sid > 10 and p.addr = s.paddr ;
b、 Unix的环境相对来说就简单多了,执行如下的命令就可以了
$ ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill
或者:#kill -9 'ps -ef|grep oracle |grep -v grep |awk '{print $2}''
#ps -ef|grep oracle |grep -v grep |cut -c 9-15|xargs kill -9
然后你再shutdown immediate就很快的了。