[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7에서 8.0 업그레이드시 timeout 문제 및 해결 방법
[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 부트스트랩 설정에서 서비스 시작에 대한 타임아웃을 기본 1분40초로 되어 있던 것을 무제한(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 마이그레이션