MySQL, MariaDB

[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7에서 8.0 업그레이드시 timeout 문제 및 해결 방법

SungWookKang 2023. 10. 19. 11:26
반응형

[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7에서 8.0 업그레이드시 timeout 문제 및 해결 방법

 

l  Version : MySQL PXC 8.0.X

 

MySQL PXC (Percona XtraDB Cluster) 5.7환경에서 8.0으로 업그레이드 진행중에 발생한 이슈가 있어, 문제 및 해결 방법에 대해서 정리한다.

 

[Problem]

기존에 운영중이던 MySQL PXC 5.7.X 버전에서 MySQL 8.0.X로 업그레이드 작업이 필요 했으며, 업그레이드를 위해 여러 상황을 검토한 결과 XtraBackup을 사용하여 백업(5.7) 및 복원(8.0)으로 진행하였다. 복원 과정 (리스토어 및 서비스 시작)에서 timeout 오류가 발생하였다. 해당 데이터베이스는 테이블이 약 70만개 존재한다.

root@mysqlpxc:/etc/default# systemctl start mysql@bootstrap.service
Job for mysql@bootstrap.service failed because a timeout was exceeded.
See "systemctl status mysql@bootstrap.service" and "journalctl -xeu mysql@bootstrap.service" for details.

 

저널로그를 확인해보면 타임아웃으로 인해 실패한 것을 확인할 수 있다.

Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1537 (n/a) with signal SIGKILL.
Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1540 (n/a) with signal SIGKILL.
Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1541 (n/a) with signal SIGKILL.
Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1542 (n/a) with signal SIGKILL.
Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1543 (n/a) with signal SIGKILL.
Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1544 (boot) with signal SIGKILL.
Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1545 (n/a) with signal SIGKILL.
Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Failed with result 'timeout'.
Oct 17 23:54:06 coveredcare02lv systemd[1]: Failed to start Percona XtraDB Cluster with config /etc/default/mysql.bootstrap.
Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Consumed 1min 15.669s CPU time.

 

 

[Solutions]

MySQL 부트스트랩 설정에서 서비스 시작에 대한 타임아웃을 기본 140초로 되어 있던 것을 무제한(TimeoutStartSec=0)으로 변경한다.

 

부트스트랩 위치

vi /usr/lib/systemd/system/'mysql@.service'

 

수정 코드 부분

[Service]
TimeoutStartSec=0

 

 

 

부트스트랩을 수정하고, 서비스를 시작한다.

systemctl start mysql@bootstrap.service

 

 

 

 

2023-10-19 / Sungwook Kang / http://sungwookkang.com

 

MySQL upgrade, MySQL 업그레이드, MySQL PXC upgrade, MySQL Percona, MySQL Galera Cluster, MySQL 복원, MySQL 마이그레이션

반응형