XtraBackup은 Percona가 무료로 제공하는 오픈소스 백업 솔루션이다.
데이터 파일을 통째로 특정 디렉토리에 복사하는 물리적인 방식으로 백업한다.
mysqldump와 비교하여 백업 / 복구 속도가 빠르다.
풀백업, 증분백업, 암호화 백업, 압축 백업, 원격 백업을 지원한다.
XtraBackup 가 제공하고 있는 버전은 2.4와 8.0 두 가지이며, 각각 2.4은 MySQL 5.7 이하 버전을, 8.0은 MySQL 8.0 을 지원한다.
서버 세팅
복구용 빈 MySQL 서버 필요 OS : Centos 7 DBMS : MySQL 5.7.34 DB저장공간 : 데이터 : /data/mysql conf : /etc/mysql/my.cnf |
XtraBackup 설치
https://www.percona.com/doc/percona-xtrabackup/2.4/installation/yum_repo.html
- centos 6
binary 파일로 설치
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.24/binary/tarball/percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12.tar.gz
tar -zxvf percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12.tar.gz
mv percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12/ /usr/local/xtrabackup
path 추가
vi /etc/profile
PATH=$PATH:/usr/local/xtrabackup/bin
qpress 설치
wget http://www.quicklz.com/qpress-11-linux-x64.tar
tar xvf qpress-11-linux-x64.tar
mv qpress /usr/bin/qpress
- centos 7
- binary 파일로 설치
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.24/binary/tarball/percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12.tar.gz
tar -zxvf percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12.tar.gz
mv percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12/ /usr/local/xtrabackup
path 추가
vi /etc/profile
PATH=$PATH:/usr/local/xtrabackup/bin
qpress 설치
wget http://www.quicklz.com/qpress-11-linux-x64.tar
tar xvf qpress-11-linux-x64.tar
mv qpress /usr/bin/qpress
2. rpm 설치
## 선택1
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
## 선택2
wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum localinstall percona-release-latest.noarch.rpm
## 선택3
wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm
rpm -ivh percona-release-latest.noarch.rpm
yum list | grep percona
yum install percona-xtrabackup-24.x86_64 ### mysql 5.7 은 xtrabackup 2.XX 버전을 설치
yum list installed | grep percona
yum install qpress
XtraBackup 특징
백업 중 유입되는 DML을 보관하여 실제 운영 DB와의 일관성을 보장한다.
기본적으로는 innoDB, XtraDB 엔진을 사용하는 데이터만 백업 가능하나,
innobackupex를 이용하면 MyISAM과 같이 트랜잭션을 지원하지 않는 엔진의 테이블도 포함하여 모든 데이터에 대해 백업이 가능하다.
- 제공되는 바이너리 파일의 차이 https://cyuu.tistory.com/98
xtrabackup : innoDB, xtraDB만 백업 가능.
innobackupex : xtrabackup + extension. MyISAM 과 같이 트랜잭션을 지원하지 않는 엔진의 테이블도 백업 가능. perl 스크립트.
XtraBackyup 8.0 버전에서 innobackupex 는 삭제되었다고 하는데, 여기서는 2.4 버전을 사용하여 innobackupex으로 테스트 진행
XtraBackup vs mysqldump
- mysqldump :
데이터베이스의 데이터를 모두 읽어서 문서 형태로 나타내는 논리적 백업 -> 시간이 많이 걸림
innoDB 엔진에 한해 핫 백업 지원.
간단하게 사용 가능.
데이터 수가 많아질 수록 백업의 속도가 느려진다.
SQL 형태로 뽑아내고 싶은 경우는 mysqldump
- xtrabackup :
데이터베이스의 데이터 파일을 복사, 백업 중 변경된 데이터블록은 별도로 백업하는 물리적인 백업 방식 -> 보다 적은 시간 소요
핫 백업 / 원격 백업 / 증분 백업 / 개별(db, table) 백업 / 압축(qpress) 백업 / 암호화 백업 등 다양한 백업 방법을 지원한다.
백업 / 복구 속도가 빠르다.
stream을 지원하기 때문에 파이프(|)를 통하여 다른 프로그램의 표준 입력으로 리다이렉션이 가능 --> (스트리밍 백업, 원격 백업 가능)
xtrabackup의 경우 데이터 파일을 복사하는 방식으로 동작하기에 데이터 파일 사이즈보다 많은 양의 디스크 공간을 차지한다. (백업 파일의 크기가 큼)
데이터를 통째로 바이너리 형태로만 백업하기 때문에 따로 뜯어볼 수가 없다.
→
큰 용량의 데이터를 백업한다거나, 전체 데이터베이스를 백업하는 경우에는 xtrabackup이 적절
: xtrabackup 빠른 백업/복구 속도
단일 테이블을 복구하거나 데이터를 sql 형태로 뽑고싶은 경우 mysqldump
: mysqldump 간단하게 사용 가능, 논리적 백업, xtrabackup 폴더 전체를 새로 쓰기 때문에 기존 서버의 데이터에 추가하는 형태가 불가능
'Dev > MySQL' 카테고리의 다른 글
4. XtraBackup 상황별 스크립트 (0) | 2022.07.03 |
---|---|
3. XtraBackup Master-Slave 원격 백업 (0) | 2022.07.02 |
2. XtraBackup 백업과 복구, 그리고 옵션 (0) | 2022.06.29 |
[MySQL] OR -> UNION (0) | 2022.06.21 |
[Oracle / MySQL] NULL 개념, 처리 (0) | 2022.06.11 |
댓글