본문 바로가기

주절주절

오라클 테이블 락(LOCK) 조회 및 해제 방법

 

 

 

 

오라클을 사용하다보면 어느순간 테이블 조회시간이 엄청나게 길어진다거나

아에 조회가 되지 않거나 추가,삭제 작업들이 처리되지 않을때가 있다.

이럴땐 테이블에 락이 걸린건 아닌지 확인해 볼 필요가 있다.

 

- 락(LOCK) 걸린 테이블 조회

select *
from v$locked_object
where oracle_username = 'user name'
; 

 

user name은 오라클 접속할때 사용한 id라고 보면 된다.

위 쿼리를 실행에 무언가 데이터가 조회되면 해당 테이블에 락이 걸려있다는 뜻이다.

 

 

락을 해제하기 위해서는 세션id를 알아야 하는데 아래 쿼리를 통해 확인 가능하다

 

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'

 

위 쿼리로 세션id와 시리얼번호를 조회 한다

 

조회한 세션 id, 시리얼번호를이용해 해당 세션은 해제시킨다

alter system kill session 'sid, serial#'  

----------------------------------------- 

alter system kill session '24, 1102'; 

commit ;