[MySQL] Stopping Purge/Resuming Purge in Error Logs
l Version : MySQL 5.7 X
MySQL 5.7.X 운영환경에서 아래와 같은 로그가 잔뜩 기록되어 있었다. 계속해서 반복되는 Stoppoing purge과 Resuming purge는 오류로 기록되고 있지는 않았지만, 반복해서 남는 로그에 원인이 궁금했다.
023-11-22T15:27:13.249813Z 4 [Note] InnoDB: Stopping purge 2023-11-22T15:27:13.363487Z 4 [Note] InnoDB: Resuming purge 2023-11-22T15:27:13.462275Z 4 [Note] InnoDB: Stopping purge 2023-11-22T15:27:13.548486Z 4 [Note] InnoDB: Resuming purge |
해당 로그에 관한 내용을 살펴보니 해당 로그는 테이블에서 TRUNCATE가 발생할 때 마다 기록되었다. 로그를 재현해 보기 위해 간단히 테이블을 생성하고 TRUNCATE 구문을 실행해 보았다. 해당 로그가 기록되기 위해서는 Vervos log 수준이 3으로 설정되어 있어야 한다.
show variables like 'log_error_verbosity%'; |
로그를 재현하기 위해 빈 테이블을 하나 생성하고, TRUNCATE 명령을 반복적으로 실행하였다.
mysql> create table t(id int primary key); mysql> truncate table t; mysql> truncate table t; mysql> truncate table t; mysql> truncate table t; |
실행 결과 후 로그를 살펴보니 아래와 같이 로그가 기록된 것을 확인할 수 있었다.
자료를 찾다보니 이러한 상황은 이미 알려진 Bug로 리포팅이 되었다고 한다. 그리고 MySQL 8.0에서는 해결이 되었다고 한다. 아마도 MySQL 5.7.X는 2023년 10월부터 EOL(End of Life)되었므로 아마도 기존 버전에는 더 이상 fix가 될것 같지 않은 개인적인 생각이 들며, 이 문제를 해결하기 위해서는 MySQL 8.0으로 업그레이드 또는 MySQL 5.7에서는 불필요하게 로그가 남지 않도록 verbos 로그 수준을 2로 조정하여 사용해야 할 듯하다.
[참고자료]
l https://www.percona.com/blog/bug-stopping-purge-resuming-purge-in-error-logs
2023-12-01 / Sungwook Kang / http://sungwookkang.com
MySQL, Percona, InnoDB purge, TRUNCATE TABLE,
'MySQL, MariaDB' 카테고리의 다른 글
[MySQL] Galera 클러스터 이름 길이 초과로 인한 클러스터 조인 오류 (0) | 2023.12.08 |
---|---|
[MySQL] SHOW PROCESSLIST로 현재 실행중인 스레드 목록 확인하기 (0) | 2023.12.04 |
[MySQL] 삭제 마킹된 데이터를 물리적으로 제거하는 purge thread 와 설정을 위한 innodb_purge_threads 변수 알아보기 (0) | 2023.11.24 |
[PMM] PMM Client 실행시 사용되는 동적 포트 변경하기 (0) | 2023.11.15 |
[MySQL] MySQL에서 caching_sha2_password 특징 및 mysql_native_password 사용하기 (0) | 2023.11.13 |