1. 오라클(Oracle) LOCK 조회 및 해제

평소에는 아무런 문제가 없이 사용이 되다가 특정 기능을 실행 시킬때 처리가 안되고 지연되는 현상이 간혹 발생할 때 가 있습니다.

 

전체적으로 문제가 생긴게 아니라 특정 기능에 대해서 일시적으로 생긴 문제라 생각을 할 수 있겠지만, 혹시 DB 테이블에 LOCK이 걸려 있는게 있나 확인을 하는게 좋습니다.

 

LOCK이 걸린 테이블은 SELECT 조회는 가능합니다. 다만, insert,update,delete과정에서 처리가 안되고 있는거를 볼 수 있습니다.

 

LOCK을 확인을 하기 위해서는 일반 계정으로 오라클에 접속시는 확인이 불가합니다.

 

SYSTEM계정으로 접속 후 확인 및 해제를 하셔야 합니다.

 

2. LOCK 걸린 테이블 확인

select * from v$locked_object

간단한 LOCK이 있는 테이블이 있는지 확인

 

 

SELECT 
	T2.SID, 
	T2.SERIAL#, 
	T2.USERNAME, 
	T2.SADDR, 
	T2.OSUSER, 
	T2.PROGRAM, 
	T3.SQL_TEXT 
FROM 
	V$LOCKED_OBJECT T1 
	LEFT JOIN V$SESSION T2 ON T2.SID = T1.SESSION_ID 
   	LEFT JOIN V$SQLTEXT T3 ON T3.ADDRESS = T2.SADDR 
ORDER BY T2.SID

상세정보를 보기 위해서는 위에 쿼리를 조회 하시면 LOCK이 걸린 테이블 및 쿼리가 나옵니다.

정보를 확인을 하시고 해제를 시켜주면 되겠습니다.

 

3. LOCK 걸린 세션 해제

alter system kill session 'SID, SERIAL#';

LOCK이 걸려있는 세션 SID와 SERIAL값으로 해제를 합니다.

+ Recent posts