티스토리 뷰

v$lock 뷰에서 타입 컬럼: TM 락은 DML(개체에 대한 액세스 동기화 관련) 
그 외 290가지 락 타입 존재 

DDL, DML 작업시 ORA-00054 에러 발생. 오브젝트에 락 걸려서 일 수 있다.
-- 작업중인 오브젝트(테이블) 알때
-- 해당 테이블에 LOCK 확인 및 sid, serial#까지 확인 

SELECT A.SID, A.SERIAL#, B.TYPE, C.OBJECT_NAME
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 IN ('테이블명');


-- 작업중인 테이블 모를때

SELECT  DO.OBJECT_NAME, DO.OWNER, DO.OBJECT_TYPE, DO.OWNER,
        VO.XIDUSN, VO.SESSION_ID, VO.LOCKED_MODE
FROM    V$LOCKED_OBJECT VO, DBA_OBJECTS DO
WHERE   VO.OBJECT_ID = DO.OBJECT_ID;



-- 3. 락 발생 사용자 SQL과 텍스트 조회 

SELECT DISTINCT X.SESSION_ID, A.SERIAL#, D.OBJECT_NAME, A.MACHINE, A.TERMINAL,
                A.OSUSER, A.PROGRAM, B.ADDRESS, B.PIECE, B.SQL_TEXT
FROM V$LOCKED_OBJECT X, V$SESSION A, V$SQLTEXT B, DBA_OBJECTS D
WHERE X.SESSION_ID = A.SID AND 
X.OBJECT_ID = D.OBJECT_ID AND A.SQL_ADDRESS = B.ADDRESS 
ORDER BY B.ADDRESS, B.PIECE;


-- 세션 킬 

ALTER SYSTEM KILL SESSION 'SID, SERIAL';



-- DML 수행 후 COMMIT, ROLLBACK 하지 않아 DBMS가 대기중이 원인일 수 도 있다. 
-- 그럴 때는 COMMIT 또는 ROLLBACK 수행해서 해결한다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함