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
'시스템 > DB' 카테고리의 다른 글
| mysql replication 마스터 단절없이 구성 (0) | 2019.04.07 |
|---|