Oracle查找被长时间锁定的对象并kill
1、用如下语句查找被锁住的表名、OSclient、Session信息
SELECT B.SID
,B.SERIAL#
,D.SPID OS系统进行号
,C.OBJECT_NAME 被锁住的对像名
,B.USERNAME 登录用户
,B.SCHEMANAME 被锁对像模式
,B.STATUS SESSION状态
,B.MACHINE SESSION客户端主机
,B.OSUSER
,B.TERMINAL
,B.PROGRAM SESSION登录程序
,B.WAIT_CLASS
FROM V$LOCKED_OBJECT A
INNER JOIN V$SESSION B
ON A.SESSION_ID = B.SID
INNER JOIN ALL_OBJECTS C
ON A.OBJECT_ID = C.OBJECT_ID
INNER JOIN V$PROCESS D
ON B.PADDR = D.ADDR;
2、 杀死对应的session
ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
ALTER SYSTEM KILL SESSION '531,16007';
3、 杀死对应的OS进程
kill -9 spid;
其中spid为第一步中查出来的系统进程号