728x90
2022.06.29 - [개발/MySQL] - 2. XtraBackup 백업과 복구, 그리고 옵션
MASTER-SLAVE 구조
xtrabackup_info / xtrabackup_binlog_info 파일에 백업받은 시점의 binlog file과 position 정보가 저장된다.
추가적으로
--slave-info 옵션으로 해당 서버가 바라보는 master의 binlog file과 position 정보를 알 수 있다.
옵션 사용시 백업 경로에 xtrabackup_slave_info 파일이 생성되며, 해당 파일에 정보가 들어있다.
이 정보를 이용하여 새로운 replication을 구성할 수 있고, binlog 복구가 가능하다.
+ SLAVE 에서 백업 받는 경우 항상 ACTIVE MASTER 를 바라보기 때문에 백업받는데 지장이 없다.
옵션 사용 예시
innobackupex --defaults-file=/etc/mysql_rion_testdbm/my.cnf --user=root --password="1234" --databases=test --slave-info /tmp/test/
원격 백업
공개키를 생성하면 ssh 접근시 비밀번호 입력 없이 바로 원격 백업 실행이 가능하다.
공개키가 없을 시, 로그 파일 스캔이 진행되는데 이때 그냥 비밀번호를 입력해주면 백업이 시작된다.
혹은 sshpass 를 이용하여 비밀번호 입력 없이 원격 백업을 받을 수 있다.
- 기본 명령어
innobackupex --user=root --password="password" --stream=xbstream /backup/path | ssh -o StrictHostKeyChecking=no root@host "/usr/local/xtrabackup/bin/xbstream -x -C /backup/path"
- 예시
innobackupex --defaults-file=/etc/mysql_testdb/my.cnf --user=root --password="1234" --databases=test --stream=xbstream /tmp/test | ssh -o StrictHostKeyChecking=no root@192.168.3.21 "/usr/local/xtrabackup/bin/xbstream -x -C /tmp/test/"
- MASTER-SLAVE 에서 원격 백업
- SLAVE 서버에서 MASTER 받아오기
cd /backup/path
ssh -o StrictHostKeyChecking=no root@192.168.3.21 \
"/usr/local/xtrabackup/bin/innobackupex \
--defaults-file=/etc/mysql_testdb/my.cnf \
--host="localhost" \
--user="root" \
--password="1234" \
--databases=test \
--stream=xbstream \
/tmp/test" 2> innobackupex.log \
| /usr/local/xtrabackup/bin/xbstream -x 2> xbstream.log
2. MASTER 서버에서 SLAVE 받아오기
innobackupex \
--defaults-file=/etc/mysql_testdb/my.cnf \
--user=root \
--password="1234" \
--databases=test \
--stream=xbstream /tmp/test \
| ssh -o StrictHostKeyChecking=no root@192.168.3.21 \
"/usr/local/xtrabackup/bin/xbstream -x -C /tmp/test/"
공개키가 생성되어 있다면 비밀번호 입력 없이 바로 실행이 되고,
없다면 비밀번호 입력 후 원격 백업을 받을 수 있다.
- 비밀번호 입력 없이 원격 백업
공개키를 생성하지 않고 비밀번호를 입력하지 않는 방법으로 sshpass가 있다.
yum install epel-release sshpass
cd /backup_path
sshpass -p "password" ssh -o StrictHostKeyChecking=no root@192.168.3.22 \
"/usr/local/xtrabackup/bin/innobackupex \
--defaults-file=/etc/mysql_testdb/my.cnf \
--host="localhost" \
--user="root" \
--password="1234" \
--databases=test \
--stream=xbstream \
/tmp/test" 2> innobackupex.log \
| /usr/local/xtrabackup/bin/xbstream -x 2> xbstream.log
- 원격 백업시 전송 속도 제한
- pv 설치
centos 6
wget ftp://ftp.pbone.net/mirror/pkgs.repoforge.org/pv/pv-1.2.0-1.el6.rf.x86_64.rpm
rpm -ivh pv-1.2.0-1.el6.rf.x86_64.rpm
centos 7
yum install epel-release pv
2. pv를 이용하여 속도 제한 설정
ssh -o StrictHostKeyChecking=no root@192.168.3.22 \
"/usr/local/xtrabackup/bin/innobackupex \
--defaults-file=/etc/mysql_testdb2/my.cnf \
--host="localhost" \
--user="root" \
--password="1234" \
--databases=test \
--stream=xbstream \
/tmp/test | pv --rate-limit 30000000" 2> innobackupex.log \
| /usr/local/xtrabackup/bin/xbstream -x 2> xbstream.log
728x90
'Dev > MySQL' 카테고리의 다른 글
5. XtraBackup 소요 시간 산정 (0) | 2022.07.15 |
---|---|
4. XtraBackup 상황별 스크립트 (0) | 2022.07.03 |
2. XtraBackup 백업과 복구, 그리고 옵션 (0) | 2022.06.29 |
1. XtraBackup 개요와 설치 (0) | 2022.06.26 |
[MySQL] OR -> UNION (0) | 2022.06.21 |
댓글