MariaDB 버전 업그레이드

개요

MariaDB 10.3 에서 MariaDB 10.11로 업그레이드 경험에 대해 공유합니다.

참고 문서

https://mariadb.com/docs/server/service-management/upgrades/community-server/release-series-cs10-6/

백업

문제 발생에 대비하여 Full Backup 을 실시 합니다. 이번 작업은 데이터 사이즈가 큰 관계로 mysqldump를 이용하기 보다 mariabackup 백업 도구를 이용하여 백업을 실시 했습니다. mysqldump와 비교하여 백업 속도는 큰 차이가 없었지만 만일의 사태 복구를 해야 할 상황이면 말이 달라 졌습니다.

mysqldump로 백업한 데이터를 가지고 복구 시뮬레이션시 대략 3시간 반 정도가 소요되었고 그대로 진행하는건 무리라고 판단하여 다른 백업 방법을 확인해 보니 mariabackup이 복구 시 속도면에서 큰 이점이 있어 이를 이용하기로 결정 했습니다.

복구 시뮬레이션 수행 결과에 대한 내용은 아래 표를 참고해 주세요.

백업 도구압축 여부소요시간실 데이터 사이즈백업 데이터 사이즈복구 시간
mysqldumpO(gzip)약 28분약 79GB7.9GB
백업 해제시 : 54GB
3시간 30분
mariabackupX약 28분약 79GB79GB21분

mariabackup 에 대한 자세한 설명은 아래 링크를 참고 하세요.

https://mariadb.com/kb/en/mariabackup-overview/

Full Backup

mariabackup --backup \
--target-dir=/data/backup/ \
--slave-info \
--safe-slave-backup \
--socket=/tmp/mysql.sock \
--user=root \
--password=PASSWORD

Restore

mariabackup --copy-back \
--target-dir=/data/backup/ \
--datadir=/data/mariadb \
--user=root \
--password=PASSWORD

기존 버전의 데이터베이스 엔진 삭제

먼저 운영 시스템 현황을 간단히 설명하자면 CentOS 7 에 mariadb-10.3 community server 버전이 rpm 패키지로 설치되어 있는 상태 입니다.

아래 명령을 수행하여 설치 되어 있는 mariadb 10.3 패키지를 제거합니다.

systemctl stop mariadb
yum remove "MariaDB-*" -y
yum remove galera -y

삭제 확인

명령어 실행시 아무것도 출력되지 않는다면 정상적으로 삭제된 것입니다.

rpm --query --all | grep -i -E "mariadb|galera"

새로운 버전 MariaDB 설치

repository 설정

wget https://r.mariadb.com/downloads/mariadb_repo_setup
echo "ad125f01bada12a1ba2f9986a21c59d2cccbe8d584e7f55079ecbeb7f43a4da4 mariadb_repo_setup" \
    | sha256sum -c -
chmod +x mariadb_repo_setup
./mariadb_repo_setup \
   --mariadb-server-version="mariadb-10.11"

MariaDB 설치 및 구동

yum install MariaDB-server MariaDB-client MariaDB-backup -y
systemctl start mariadb

MariaDB 데이터 업그레이드

MariaDB 커뮤니터 서버는 새 버전에서 호환성 문제를 식별하고 수정하는데 사용할 수 있는 mariadb-upgrade 유틸리티를 제공합니다.

서버를 업그레이드 하고 서버 프로세스를 시작한 후 이 유틸리티를 실행하여 데이터 디렉토리내 MariaDB데이터를 새로운 버전에 호환되도록 업그레이드 합니다.

mariadb-upgrade

정말 심플하게 mariadb-upgrade 명령어만 입력하면 업그레이드가 진행됩니다.

만약 아래와 같은 에러가 발생한다면

Reading datadir from the MariaDB server failed. Got the following error when executing the 'mysql' command line client
ERROR 2002 (HY000): Can't connect to local server through socket '/var/lib/mysql/mysql.sock' (2)
FATAL ERROR: Upgrade failed

다음과 같이 조치 합니다.

mariadb-upgrade -u root -pPASSWORD --socket=/tmp/mysql.sock

mariadb-upgrade 수행시간은 테스트했던 데이터 사이즈 기준 약 2분 정도 소요 되었고 이후 문제 없이 잘 구동 되었습니다.

EOS가 임박한 상태에서 업그레이드가 불가피 하였고 많은 우려를 안고 작업을 진행 하였는데 생각보다 큰 문제 없이 진행이 되어 살짝 당황 했네요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다