ITPub博客

首页 > 数据库 > Oracle > Oracle中Kill session的研究

Oracle中Kill session的研究

原创 Oracle 作者:jolly10 时间:2008-03-20 10:40:32 0 删除 编辑
Oracle中Kill session的研究[@more@]

Oracle中Kill session的研究


参考http://www.eygle.com/faq/Kill_Session.htm


SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;
SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ---------- ----------------
29EF8638 139 4 29E214B8 SCOTT INACTIVE
29EFBEA8 142 25 29E21A70 LJG INACTIVE
29EFD178 143 8 29E20F00 SYSTEM INACTIVE
29F0FE78 159 3 29E1E6F8 SYS ACTIVE

记录kill 之前的paddr


SQL> alter system kill session '142,25';

System altered.


SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;

SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ---------- ----------------
29EF8638 139 4 29E214B8 SCOTT INACTIVE
29EFBEA8 142 25 29E4FE9C LJG KILLED
29EFD178 143 8 29E20F00 SYSTEM INACTIVE
29F0FE78 159 3 29E1E6F8 SYS ACTIVE


SQL> alter system kill session '139,4';

System altered.

SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;

SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ---------- ----------------
29EF8638 139 4 29E4FE9C SCOTT KILLED
29EFBEA8 142 25 29E4FE9C LJG KILLED
29EFD178 143 8 29E20F00 SYSTEM INACTIVE
29F0FE78 159 3 29E1E6F8 SYS ACTIVE

当一个session被kill掉以后,该session的paddr被修改,如果有多个session被kill,那么多个session的paddr都被更改为相同的进程地址。

在这种情况下,很多时候,资源是无法释放的,我们需要查询spid,在操作系统级来kill这些进程.但是由于此时v$session.paddr已经改变,我们无法通过v$session和v$process关联来获得spid

简单的方法可以用V$PROCESS与V$SESSION进行比较,得到SPID。


SQL> select p.addr from v$process p where pid <> 1
2 minus
3 select s.paddr from v$session s;

ADDR
--------
29E214B8
29E21A70

SQL>select spid from v$process where addr in(
select p.addr from v$process p where pid <> 1
minus
select s.paddr from v$session s);
SPID
------
3810
3832

这样就可以找到之前kill掉的session的spid,可以通过OS的kill来杀进程。

[root@linx130 ~]# kill -9 3810
[root@linx130 ~]# kill -9 3832

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/271283/viewspace-1001212/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-20

  • 博文量
    263
  • 访问量
    826724