[MySQL][ERROR] MySQL 5.7 셧다운되지 않음 InnoDB: Waiting for 4054 active transactions to finish

hwwwa·2025년 2월 27일

오류 상황

MySQL 5.7 장비를 셧다운 시도하였지만, 아래와 같은 에러로그만 반복적으로 남으며 셧다운되지 않았다

[Note] InnoDB: Waiting for 4054 active transactions to finish

위 메세지는 실행중인 트랜잭션이 4054개 남아있는 상태이며, 모든 트랜잭션에 대해 롤백을 수행중인 상태를 의미한다.

원인

trx_rollback_or_clean_all_recovered 가 수행되는 동안 innodb_fash_shutdown 을 반영하지 못하고 계속 기다리고 있는 현상으로, 정확한 원인은 밝혀지지 않은 MySQL 5.7의 버그라고 한다.

나의 경우에는 셧다운을 시도한 이후로 20분이 경과된 시점에도 여전히 롤백 진행중이었다.
이에 프로세스 킬을 수행하여 MySQL을 강제종료했고, 재기동되며 crash recovery가 발생하였다.

해결방안?

일반적으로는 innodb_fash_shutdown=1 을 사용하여 이슈를 회피할 수 있지만, 나의 경우에는 innodb_fash_shutdown 파라미터가 정상적으로 반영되지 않는 버그가 발생한 것이다.

해당 버그를 회피할 수 있는 방법은 없고, 강제종료하는 수 밖에 없다.

0개의 댓글