728x90
오라클의 테이블에 DML 관련 작업을 하다보면 ORA-00054 에러를 종종 만나게 된다. (종종 만나지 말아야 하나, 어쩔 수 없이 만나는 듯) 인덱스 관련된 작업의 Lock 이나 기타 DML 작업에서 Lock 이 걸린 경우 이같은 증상을 많이 만날 수 있다.
STEP 1 : Lock 이 발생한 OBJECT 확인
STEP 2 : Lock 을 잡고 있는 세션 ID 확인
STEP 3 : Lock 을 잡고 있는 세션의 Serial 번호 확인
STEP 4 : 세션 강제 종료
STEP 5 : 세션 종료 확인 및 Rollback 체크
참고 URL : http://kr.forums.oracle.com/forums/thread.jspa?messageID=1457903
- NoPD -
STEP 1 : Lock 이 발생한 OBJECT 확인
SELECT object_id, object_type
FROM dba_objects
WHERE object_name='테이블 / 인덱스 이름';
FROM dba_objects
WHERE object_name='테이블 / 인덱스 이름';
STEP 2 : Lock 을 잡고 있는 세션 ID 확인
SELECT *
FROM v$locked_object
WHERE object_id='STEP1에서 검색한 object_id';
(오라클 사용자 이름과 세션 ID 를 기억해 둔다)
FROM v$locked_object
WHERE object_id='STEP1에서 검색한 object_id';
(오라클 사용자 이름과 세션 ID 를 기억해 둔다)
STEP 3 : Lock 을 잡고 있는 세션의 Serial 번호 확인
SELECT sid, serial#, command, taddr
FROM v$session
WHERE sid='STEP2의 세션 ID 번호';
FROM v$session
WHERE sid='STEP2의 세션 ID 번호';
STEP 4 : 세션 강제 종료
ALTER SYSTEM KILL SESSION '<세션 ID, Serial#>';
STEP 5 : 세션 종료 확인 및 Rollback 체크
SELECT used_ublk
FROM v$transaction
WHERE ADDR='<STEP3의 TADDR>';
FROM v$transaction
WHERE ADDR='<STEP3의 TADDR>';
참고 URL : http://kr.forums.oracle.com/forums/thread.jspa?messageID=1457903
- NoPD -
728x90