etc/SQL

Wating for table metadata lock 대처법

Jun's N 2022. 6. 30. 20:28

데이터베이스에서 작업을 하다보면 종종 쿼리가 실행이 안되고 대기 중일때가 있다.

이 상황이 발생하면 show processlist 를 실행하면 작업 중인 목록이 나온다.

이 때, Wating for table metadata lock 를 마주할 수 있다.

기본적으로 kill (id number) 를 실행 후 재실행 하면 해결이 된다.

하지만, 예를 들어 매일 자동화하는 작업이 있는데 그 작업이 완료 처리가 되지 않아서 실행되지 않는거라면

종료될 때까지 기다려야 하는데, 따로 설정을 해주지 않으면 작업 대기 시간이 꽤 길다.

SELECT* FROM information_schema.INNODB_TRX 을 사용하면 현재 진행중인 테이블과 해당 id number가 나온다.

이를 kill 해주고 원래 실행하려던 쿼리를 실행하면 작동된다.

SELECT * FROM information_schema.INNODB_TRX;

 

 

 

728x90