can not kill session in oracle level


今天同事遇到问题, 编译包的时候总是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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/763776/viewspace-616834/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值