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값으로 해제를 합니다.
'데이터베이스 > Oracle' 카테고리의 다른 글
개발노트 :: 오라클(Oracle) ROLE 및 시스템권한 조회 및 부여 (0) | 2019.03.14 |
---|---|
개발노트 :: 오라클(Oracle) 테이블스페이스, 유저 생성 (0) | 2019.03.14 |
개발노트 :: 오라클(Oracle) 테이블스페이스 이름 및 물리적 경로 확인 (0) | 2019.03.14 |
개발노트 :: 오라클(Oracle) ServiceName, SID 확인 (0) | 2019.03.14 |
개발노트 :: 오라클(Oracle) 쉘 접속 (0) | 2019.03.14 |