您的当前位置:首页正文

oracle 查找被长时间锁定的对象并KILL

2024-11-07 来源:个人技术集锦

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


转至:

Top