如何谋杀掉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就很快的了。