杀掉无法kill的进程

我们有时候会遇到这种情况 :  

已经显示kill掉了,但是会话还在,还是占用资源,这个时候我们想在操作系统上进行kill,可以通过

 

 alter system kill session '2067,39031';   执行之后出现如下情况:



SQL> select status,PADDR from v$session  where sid ='2067';

STATUS   PADDR
-------- ----------------
KILLED   07000026D5333D28



SQL> select spid from  v$process  where ADDR = '07000026D5333D28';

SPID
------------
5308956

oracle@oss139db02$[/home/oracle]ps -ef|grep 5308956
  oracle  5308956        1   0 14:06:00      -  0:47 oracleoss1392 (LOCAL=NO)
  oracle 16253808 12321576   0 16:58:45  pts/0  0:00 grep 5308956
oracle@oss139db02$[/home/oracle]kill -9 5308956

这个时候是比较好kill的,可以找到spid,如果无法找到spid,
就是有另外一种情况:

    就是

 select spid from v$process where ADDR = '07000026D5333D28';    ---这个时候的查询结果为空,

但是查询v$session的时候sid还在:

 

这个时候怎么找出被kill掉的session呢?

SELECT spid
                 FROM v$process
                 WHERE NOT EXISTS ( SELECT 1
                                    FROM v$session
                                    WHERE paddr = addr);

 

这个时候有可能有多个, 那哪个才是我们那个要kill的session呢?

我一般的判断方法是: 通过时间比对

SQL> select to_char(logon_time,'yyyy-mm-dd hh24:mi:ss'), spid from v$session s,v$process  p  where  s.PADDR = p.ADDR and  sid ='1720';

TO_CHAR(LOGON_TIME, SPID
------------------- ------------
2012-12-11 09:10:09 18220014

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
oracle@oss139db02$[/home/oracle]ps -ef |grep 18220014
  oracle 13238556 12321576   0 17:07:24  pts/0  0:00 grep 18220014
  oracle 18220014        1   0 09:10:09      -  0:00 oracleoss1392 (LOCAL=NO)
oracle@oss139db02$[/home/oracle]

 

这两个时间是一致的,通过这个时间可以得出自己要的session,我上面的例子是可以找出进程的情况,如果无法找出的话,可以看他的登录时间,是否与v$session一致即可。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值