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为第一步中查出来的系统进程号

posted @ 2016-05-30 21:35  moonandstar08  阅读(582)  评论(0编辑  收藏  举报