今天同事遇到问题, 编译包的时候总是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博客 ” ,链接:https://blog.itpub.net/763776/viewspace-616834/
,如需转载,请注明出处,否则将追究法律责任。