← Replica DB 프로젝트
🔄

02 / 05

버전업

MariaDB 10.5에서 11.4 버전업 과정. EBS 마운트, 설치, 데이터 이관, 시퀀스 마이그레이션

MariaDB 11.4mysqldumpMigration
개요버전업이중화 구성테스트튜닝

Migration

MariaDB 10.5 → 11.4 버전업

기존 MariaDB 10.5를 11.4로 버전업하는 과정이다. 인플레이스 업그레이드가 아닌, 신규 서버에 11.4를 설치하고 데이터를 이관하는 방식으로 진행했다.

EBS 볼륨 마운트

데이터용 EBS 볼륨을 별도로 붙여서 OS 볼륨과 분리했다. DB 데이터를 /data 경로에 저장한다.

# 디스크 확인
lsblk

# 파일시스템 생성
sudo mkfs.xfs /dev/xvdf

# 마운트
sudo mkdir -p /data
sudo mount /dev/xvdf /data

# fstab 영구 등록
echo '/dev/xvdf /data xfs defaults,nofail 0 2' | sudo tee -a /etc/fstab
EBS 마운트 확인

MariaDB 11.4 설치

# MariaDB 공식 레포 추가
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | \
  sudo bash -s -- --mariadb-server-version="mariadb-11.4"

# 설치
sudo yum install MariaDB-server MariaDB-client -y

주요 설정 (my.cnf)

[mysqld]
datadir=/data/mysql
port=[db-port]
bind-address=0.0.0.0

# Replication (Master)
server-id=1
log-bin=mysql-bin
binlog-format=ROW
log-slave-updates=ON
gtid_strict_mode=ON

# 성능
innodb_buffer_pool_size=8G
innodb_log_file_size=1G
innodb_flush_log_at_trx_commit=1
sync_binlog=1

# 문자셋
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
server-id는 Master와 Replica가 반드시 달라야 한다. Master=1, Replica=2로 설정.

데이터 마이그레이션

mysqldump로 기존 데이터를 추출하고 신규 서버로 이관했다.

# 기존 서버에서 덤프
mysqldump -h [source-ip] -u [user] -p \
  --single-transaction \
  --routines --triggers --events \
  --databases [db-name] > dump.sql

# 신규 서버에서 import
mysql -u root -p < dump.sql

시퀀스 마이그레이션

10.5에서 11.4로 넘어가면서 시퀀스 처리 방식이 달라졌다. 일반 덤프로는 시퀀스가 이관되지 않아서 별도 스크립트로 처리했다.

# 시퀀스 목록 추출
mysql -h [source-ip] -u [user] -p -e \
  "SELECT TABLE_NAME FROM information_schema.TABLES \
   WHERE TABLE_SCHEMA='[db-name]' AND TABLE_TYPE='SEQUENCE';" \
  --skip-column-names > sequences.txt

# 시퀀스별 현재값 확인 후 생성
while read seq; do
  val=$(mysql -h [source-ip] -u [user] -p -e \
    "SELECT NEXTVAL($seq);" --skip-column-names)
  mysql -u root -p -e \
    "CREATE SEQUENCE IF NOT EXISTS [db-name].$seq START WITH $val;"
done < sequences.txt
시퀀스 마이그레이션

DEV → PRD 적용

DEV 환경

  • • 다운타임 약 30분
  • • innodb_buffer_pool_size: 2G
  • • 시퀀스 이관 이슈 발견 및 해결
  • • deprecated 설정 경고 확인
  • • 약 20~25% 성능 향상 확인

PRD 환경

  • • EBS 스냅샷 + mysqldump 이중 백업
  • • innodb_buffer_pool_size: 8G
  • • 시퀀스 마이그레이션 스크립트 사전 준비
  • • 롤백 계획 수립 (기존 서버 1주 유지)
  • • 전환 후 24시간 집중 모니터링
개요이중화 구성