xtrabackup 으로 단절없이 replication 구성

2025. 11. 30. 21:56·시스템/DB

 

https://bashlinux.tistory.com/20

 

mysql replication 마스터 단절없이 구성

리플리케이션 구성시 특정옵션으로 master의 binlog와 posno 를 남기면서 덤프 가능합니다. - 마스터 서버에서 mysqldump 실행mysqldump -p --single-transaction --master-data=2 --all-databases > 파일명.sql * 옵션 설명--s

bash.co.kr

기존에 남긴 dump 방식에서 xtrabackup 으로 개선된 방식이 있어서 공유드립니다.

dump 방식의 단점:

1. 시간이 오래걸림

2. 사이트에 lock 을 안하고 (--single-transaction) dump 하면 데이터 일관성이 맞지않아 replication 이 깨지거나 정상적으로 구성이 되지않을수 있음


# TEST 환경

OS: RockyLinux 8.10

DB: MySQL 8.0

# MySQL 설치
dnf -y install mysql-server

# MySQL 실행
systemctl enable mysqld --now

# root 패스워드 지정 및 replication 계정 생성
mysql -uroot
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Bash1@#$';
CREATE USER 'repl'@'$SLAVEIP' IDENTIFIED BY 'repl1@#$';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'$SLAVEIP';
FLUSH PRIVILEGES;

# xtrabackup 설치
dnf install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
percona-release enable-only tools release
percona-release enable-only xtrabackup80 release
dnf install -y qpress percona-xtrabackup-80

# 압축하여 백업
xtrabackup --defaults-file=/etc/my.cnf --user="root" --password="Bash1@#$" --backup --no-lock --parallel=4 --compress --compress-threads=4 --stream=xbstream > xbstream


################### 아래부터는 다른서버 (Replication 대상) 에 접속하여 작업
# 다른서버 (Replication 대상) xbstream 옮기기
rsync, scp 등 이용

# 다른서버 (Replication 대상) 압축해제
mkdir /root/backup
xbstream -x < xbstream -C /root/backup/
xtrabackup --decompress-threads=8 --decompress --remove-original --target_dir=/root/backup/

# apply
xtrabackup --prepare --target-dir=/root/backup/

# 대상서버에 복구 (복구시 데이터가 없어야함)
systemctl stop mysqld
rm -rfv /var/lib/mysql/*
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target_dir=/root/backup

# 소유권조정 및 DB 시작
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld

# xtrabackup_info 에 포지션 기록됨
grep binlog_pos /var/lib/mysql/xtrabackup_info
binlog_pos = filename 'binlog.000003', position '157'

# replication 구성
CHANGE MASTER TO MASTER_HOST='마스터IP', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='repl1@#$', master_log_file='binlog.000003', master_log_pos=157;
start slave;
show slave status\G

 

출처: https://hoing.io/archives/15274

저작자표시 비영리 (새창열림)

'시스템 > DB' 카테고리의 다른 글

mysql replication 마스터 단절없이 구성  (0) 2019.04.07
'시스템/DB' 카테고리의 다른 글
  • mysql replication 마스터 단절없이 구성
bash1004
bash1004
  • bash1004
    bash
    bash1004
  • 전체
    오늘
    어제
    • 분류 전체보기 (10)
      • 시스템 (8)
        • CENTOS6 (1)
        • CENTOS7 (1)
        • 젠서버 (1)
        • 시스템운영 (3)
        • DB (2)
      • 고전게임 (0)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    CentOS
    xencenter
    vnc
    젠서버
    XenServer
    그래픽
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
bash1004
xtrabackup 으로 단절없이 replication 구성
상단으로

티스토리툴바