개요
mariadb 10.3 에서 mariadb 10.11로 업그레이드 한 경험에 대해 공유 합니다.
참고 문서

백업
문제 발생에 대비하여 Full Backup 을 실시 합니다. 이번 작업은 데이터 사이즈가 큰 관계로 mysqldump
를 이용하기 보다 mariabackup
백업 도구를 이용하여 백업을 실시 했습니다. mysqldump
와 비교하여 백업 속도는 큰 차이가 없었지만 만일의 사태 복구를 해야 할 상황이면 말이 달라 졌습니다.
mysqldump
로 백업한 데이터를 가지고 복구 시뮬레이션시 대략 3시간 반 정도가 소요되었고 그대로 진행하는건 무리라고 판단하여 다른 백업 방법을 확인해 보니 mariabackup
이 복구 시 속도면에서 큰 이점이 있어 이를 이용하기로 결정 했습니다.
복구 시뮬레이션 수행 결과에 대한 내용은 아래 표를 참고해 주세요.
백업 도구 | 압축 여부 | 소요시간 | 실 데이터 사이즈 | 백업 데이터 사이즈 | 복구 시간 |
mysqldump | O(gzip) | 약 28분 | 약 79GB | 7.9GB 백업 해제시 : 54GB | 3시간 30분 |
mariadb-backup | X | 약 28분 | 약 79GB | 79GB | 21분 |
mariabackup을 이용한 백업 방법
$ mariabackup --backup \ --target-dir=/data/backup \ --slave-info \ --safe-slave-backup \ --socket=/tmp/mysql.sock \ --user=root \ --password=PASSWORD
mariabackup을 이용한 복구 방법
$ mariabackup --copy-back \ --target-dir=/data/backup \ --datadir=/data/mariadb \ --user=root \ --password=PASSWORD
mariabackup
에 대한 자세한 설명은 아래 링크를 참고 하세요.
MariaDB 데이터 베이스 업그레이드
백업이 완료 되었고 본격적으로 데이터베이스 업그레이드 작업을 진행합니다.
업그레이드에 대한 전반적인 순서 입니다.
- 현재 사용중인 데이터베이스 제거
- 신규 버전 데이터베이스 설치
- data 디렉토리 업그레이드
현재 사용중인 데이터베이스 제거
먼저 운영 시스템 현황을 간단히 설명하자면 CentOS 7
에 mariadb-10.3 community server
버전이 rpm
패키지로 설치되어 있는 상태 입니다.
아래 명령을 수행하여 설치 되어 있는 mariadb 10.3 패키지를 제거합니다.
$ systemctl stop mariadb $ yum remove "MariaDB-*" -y $ yum remove galera -y
신규 버전 데이터베이스 설치
신규 버전에 대한 yum 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 Community Server 설치
$ yum install MariaDB-server MariaDB-client MariaDB-backup -y
MariaDB 구동
MariaDB구동하기 전 기존 설정을 my.cnf 에 추가해 줍니다.
$ systemctl start mariadb
data 디렉토리 업그레이드
MariaDB 커뮤니티 서버는 새 버전에서 호환성 문제를 식별하고 수정하는데 사용할 수 있는 mariadb-upgrade 도구를 제공합니다.
서버를 업그레이드 하고 서버 프로세스를 시작한 후 이 도구를 이용하여 데이터 디렉토리내 데이터를 신규 버전에 호환되도록 업그레이드 합니다.
$ 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가 임박한 상태에서 업그레이드가 불가피 하였고 많은 우려를 안고 작업을 진행 하였는데 생각보다 큰 문제 없이 진행이 되어 살짝 당황 했네요.