본문 바로가기
에러발생

테이블이 삭제 데이터 안돼요.

by 뚜루룸 2020. 12. 22.

우리는 종종 아래와 같은 상황을

마주합니다.

 

아무리..

데이터를 지워도 데이터가 지워지지 않는...

괜히 바쁠대는 심장이 쿵쾅쿵쾅거리는 그런 상황을 마주하죠!

 

이럴때는 rock 체클 해보아야 합니다.

 

테이블 rock 체크 쿼리입니다.

 

SELECT A.SID , A.SERIAL# , object_name , A.SID || ', ' || A.SERIAL# AS KILL_TASK 
  FROM V$SESSION A 
 INNER JOIN V$LOCK B ON A.SID = B.SID 
 INNER JOIN DBA_OBJECTS C ON B.ID1 = C.OBJECT_ID 
 WHERE B.TYPE = 'TM' ;

 

우리는 이 쿼리를 통해서 아래와 같은 rock이 걸려있는 테이블을 확인 할 수 있습니다.

 

KILL_TASK 컬럼에 있는 값을 이용하여 락을 해제할 수 있습니다.

 

ALTER SYSTEM KILL SESSION 'KILL_TASK';

 

ROCK이 걸려있는 모든테이블이 사라짐을 확인 할 수있습니다.

 

정리,

SELECT A.SID , A.SERIAL# , object_name , A.SID || ', ' || A.SERIAL# AS KILL_TASK  
  FROM V$SESSION A  
 INNER JOIN V$LOCK B ON A.SID = B.SID  
 INNER JOIN DBA_OBJECTS C ON B.ID1 = C.OBJECT_ID  
 WHERE B.TYPE = 'TM' ; 

를 통해 조회된 KILL_TASK 값을 이용하여 

 

ALTER SYSTEM KILL SESSION 'KILL_TASK'; 락을 해지합니다.

 

댓글