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