본문 바로가기
끄적/DB

[오라클] 데드락 확인 및 kill하기

by 밀키스 2022. 5. 20.

1. 데드락 - 교착상태

일 중에 교착상태에 대한 이해도가 떨어져 고생 좀 했다. 간단히 이해하면

 

  • 2개의 트랜잭션이 하나의 테이블에 같은 정보로 DML 작업을 할때에 commit 되지 않은 상태로 만나버리면 어느것도 완료되지 못하고 교착상태에 빠진다

그니까 결국 하나의 테이블에 대해 2명이 서로 작업을 시작했는데, 만일 오토커밋이 아니라 가정하고 한 트랜잭션이 완료되지 못한 상태로 다른 곳에서 들어와 버리면 이게 묶여 버린다.

 

어지간하면 이런 일이 발생하는 일이 없지만... 내 경우에 추측되는 것은

 

1. 내가 너무 오래 걸리는 작업을 강제로 종료하면서 이게 남아있어 버렸다.

2. 진짜 다른 사람이 나랑 같은 데이터에 대해 같은 테이블로 작업을 하고 있는데 같이 사이 좋게 묶였다.

 

이 2개인데.. 내 경우에는 1번이라 생각된다..

 

데드락이 걸리면 이 작업을 강제로 죽여줘야 하는데 이때에는 alter kill문을 사용해주면 된다, 이건 다른 블로그를 참조하였다.

 

 

오라클 LOCK에 관한 정리

-- row lock 조회(멀티) select event , instance_number , sample_time , sql_id , session_id , session_...

blog.naver.com

반응형

댓글