본문 바로가기

DB의 속삭임/DataBase의 외침

[DB][ORACLE][관리]테이블에 락이 걸린 정보를 확인하는 방법

* 데이타를 이용하다보면 테이블에 lock이 걸려, 수동으로 lock을 확인하고, 해당 계정의 섹션을 죽임으로써 락을 풀어 줄 필요가 있을 때가 있다.


1. 해당 테이블[조건절에서 제외하면 모든 테이블]의 락정보 확인 쿼리

SELECT B.TYPE,

       C.OBJECT_NAME,

       A.SID,

       A.SERIAL#,

       D.OS_USER_NAME AS OS_USER_NAME,

       D.ORACLE_USERNAME AS ORACLE_USERNAME

 FROM V$SESSION A,V$LOCK B,DBA_OBJECTS C, V$LOCKED_OBJECT D

WHERE A.SID = B.SID

  AND B.ID1 = C.OBJECT_ID

  AND B.TYPE = 'TM'

  AND C.OBJECT_NAME = '[락정보를 확인할 테이블]' 

  AND D.SESSION_ID = A.SID;


2. SID와 SERIAL을 확인했다면 해당 정보로 세션을 끊어 주므로써 락을 해지 한다.

ALTER SYSTEM KILL SESSION '[SID,SERIAL]';