ITPub博客

首页 > Linux操作系统 > Linux操作系统 > can not kill session in oracle level

can not kill session in oracle level

原创 Linux操作系统 作者:cpayu2006 时间:2009-10-19 11:48:30 0 删除 编辑

今天同事遇到问题, 编译包的时候总是hang, 找到罪魁祸首是sid是195的session,查看这个session, 是无关紧要的session。 于是kill之:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null and sid='195';

SADDR                   SID    SERIAL# PADDR

---------------- ---------- ---------- ----------------

USERNAME                       STATUS

------------------------------ --------

00000000BD9BBA68        195        976 00000000BD6F42E8

SPAM                            ACTIVE

 

SQL> alter system kill session '195,976';

alter system kill session '195,976'

*

ERROR at line 1:

ORA-00031: session marked for kill


ORA-00031说明在oracle级别暂时不能释放资源, 于是借助操作系统直接杀掉进程:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 SQL> select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=195;
195是上面的sid

SPID                     OSUSER

------------------------ ------------------------------

PROGRAM

------------------------------------------------

15685                    Michael L

SQL Developer


这是一个sql developer连接没有关掉, 一直占用资源, 于是杀掉这个process:

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 Logon server as root user:

[root@hawfinch ~]# ps -ef|grep 15685

oracle   15685     1  0 00:09 ?        00:00:02 oraclessdev (LOCAL=NO)


确定此process可以被杀掉, 只是一个外部的连接, kill掉这个process:

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 [root@hawfinch ~]#kill -9 15685

等待一小段时间(视事物大小,如果事务很大,可能需要较长时间回滚), session会被kill掉, 锁被释放。

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

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

注册时间:2009-09-25

  • 博文量
    14
  • 访问量
    11355