今天同事遇到问题, 编译包的时候总是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/