Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Onlab

MariaDB 버전 업그레이드 본문

데이터베이스/MariaDB

MariaDB 버전 업그레이드

Onlab 2023. 7. 7. 22:35

개요

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

참고 문서

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

 

Open Source Database (RDBMS) for the Enterprise | MariaDB

MariaDB is the leading enterprise open source database with features previously only available in costly proprietary databases. Enterprise grade, wallet friendly.

mariadb.com

 

백업

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

 

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

 

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

백업 도구 압축 여부 소요시간 실 데이터 사이즈 백업 데이터 사이즈 복구 시간
mysqldump O(gzip) 약 28분 약 79GB 7.9GB
백업 해제시 : 54GB
3시간 30분
mariabackup 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 에 대한 자세한 설명은 아래 링크를 참고 하세요.

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

 

Mariabackup Options

Options for Mariabackup.

mariadb.com

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 구동

my.cnf 에 기존설정 추가 후 MariaDB 구동합니다.

$ systemctl start mariadb

data 디렉토리 업그레이드

MariaDB Community Server는 새 버전에서 호환성 문제를 식별하고 수정하는데 사용할 수 있는 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가 임박한 상태에서 업그레이드가 불가피 하였고 많은 우려를 안고 작업을 진행 하였는데 생각보다 큰 문제 없이 진행이 되어 살짝 당황 했네요.