ORACLE 强杀进程

通常情况下,要强行关闭session,会执行下面的命令: alter system kill session 'sid,serial#'; 这命令会把相应的session关了,但有时,这命令并不能把相应的session关了,只是把相应的session状态变成了killed,被杀的session其实还是在跑的,没有达到我们的目的。 一种变通的办法,先查出对应session的操作系统进程: select spid from v$process where addr in (select paddr from v$session where sid=?) 然后用操作系统命令kill -9 强行杀进程,这办法一般还是能奏效的,但有一个不便之处,就是要登录到数据库所在的机器上操作,如果如果登陆的帐号没有执行kill的权限,或者没有OS帐号,这一办法是行不通的。 其实10G之后,alter system kill session后面还可以加一选项immediate,这样比没有选项的操作更暴力,可以起到操作系统kill -9一样的效果: alter system kill session 'sid,serial#' immediate; 从几次实际的操作结果来看,这命令还是很不错的,不用爬到机器上了。

 

你可能感兴趣的:(学习记录)