써먹는 웹개발

[Oracle] 툴로 DB Lock 해제하기 본문

웹개발/Database

[Oracle] 툴로 DB Lock 해제하기

kmhan 2021. 8. 31. 16:06


728x90
반응형

상황설명 : 기본키 추가하려고 하다가 'ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired Position: 12' 문구가 떠서 원인이 DB Lock 이었다는 것을 알게되었다.

 

해결방법

1. TM(TABLE LOCK) 조회하기

SELECT B.TYPE

, C.OBJECT_NAME

, A.SID        -- SESSION ID를 의미함

, A.SERIAL#    -- SERIAL 넘버  

FROM  V$SESSION A

, V$LOCK B

, DBA_OBJECTS C     

WHERE A.SID=B.SID 

AND B.ID1=C.OBJECT_ID 

AND B.TYPE='TM' ;

 

2. TABLE으로 조회하기

      SELECT A.SID

      , A.SERIAL# 

FROM V$SESSION A

,V$LOCK B

,DBA_OBJECTS C 

    WHERE A.SID=B.SID 

     AND B.ID1=C.OBJECT_ID 

        AND B.TYPE='TM' 

        AND C.OBJECT_NAME='테이블명' ;

 

3. 세션 죽이기

ex) SID = 1, SERIAL_NO = 1000

->ALTER SYSTEM KILL SESSION '1, 1000';



출처: https://jjomin.tistory.com/17 [whatEver]

728x90
반응형


Comments