본문 바로가기
반응형

deadlock3

[Mysql] Lock 확인 및 해제 여러 쿼리를 반복 , 여러번 수행하다 보면 dead lock 이 걸릴때가 있다. 이럴때는 직접 해결해주지 않고서는 쉽지 않게 풀린다. 찾는 방법은 간단하다. Lock 확인 SHOW PROCESSLIST; //이건 100개만 나오고 전체를 나오게 하려면 SHOW FULL PROCESSLIST; 그럼 이와같이 보인다. Kill kill하는 방법 역시 간단하다. process 의 id를 해주면 된다. KILL 255; 2024. 3. 20.
[Oracle / Tibero] Lock 걸린 테이블 확인 불특정한 다양한 이유로 Database는 Lock이 걸릴수 있고, 만약 그 Lock 이 DeadLock일 경우에는 멈춰버리는 상황이 생겨 최악으로는 프로세스를 내렸다가 다시 실행해야하는 상황이 생길수도 있다. 다시 실행하면 그만이 아닌 어떤 쿼리에서 어떤 이유로 , 왜 락이 걸렸는지 등등 확인해봐야한다. 아래 쿼리를 참고 하면 된다. 락 걸린 테이블 확인 select * from v$locked_object vo , dba_objects do where vo.object_id = do.object_id; 장기실행 또는 락걸린 SQL 확인 select distinct vo.session_id ,vss.serial# ,do.object_name ,vss.machine ,vss.terminal ,vss.pro.. 2023. 11. 26.
교착상태 / 기아상태 교착상태(Deadlock)란 서로 다른 프로세스가 서로 점유하고 있는 자원의 반납을 대기하고 있는 상태를 의미한다. 발생조건 상호 배제: 한 번에 한 프로세스만 해당 자원을 사용할 수 있어야 함 점유 대기: 할당된 자원을 가진 상태에서 다른 자원을 기다림 비선점: 다른 프로세스가 자원의 사용을 끝낼 때 까지 자원을 뺏을 수 없음 순환대기: 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음 해결방법 예방: 4가지 조건 중 하나라도 만족되지 않도록 함 회피: 알고리즘을 데드락이 발생하지 않도록 함 회복: 교착상태가 발생할 때, 해결함 무시: 회복과정의 성능저하가 심하다면 그냥 무시 기아상태(Starvation)란 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때, 특정 프로세스가 영.. 2022. 11. 3.
반응형