XtraBackup을 이용한 InnoDB 증분백업과 복구하기 ( 1 ) 설치




XtraBackup


XtraBackup은 percona사에서 만든 무료 백업 솔루션이다. Percona server, MySQL, MariaDB 등을


백업할 수 있으며 흔히 쓰는 mysqldump 와 다르게 무려! 증분백업이 된다.


XtraBackup의 장점은 너무 많다.


pausing 없이 핫백업이 되고, 증분백업이 되고, 로컬이 아닌 다른서버로 압축전송도 가능하고...등등...




XtraBackup 원리


XtraBackup은 InnoDB엔진의 자동복구 기능과 비슷한 원리다. 백업이 실행되면 데이터 파일들을 카피 하기 시작한다. 


우리가 이미 알고 있는 cp 와 크게 다르지 않은데 차이점은 카피가 시작된 이후부터 발생되는 변경사항을 별도의 파일에 


기록한다는 것이다. 이 파일을 백업된 리두로그 라고 한다.


카피작업이 끝나고 백업된 리두로그를 카피한 백업데이터에 반영해 consistent 한 데이터로 만들어주면 백업이 완료된다. 




설치


https://www.percona.com/downloads/XtraBackup/


Percona 홈페이지에서 원하는 OS와 버전을 선택해 바로 다운 받을수 있다.


테스트 서버가 CentOS 6.4 x64라서 percona-xtrabackup-24-2.4.3-1.el6.x86_64.rpm 파일을 받았다.


xtrabackup 설치시 libev 라이브러리가 필요하므로 먼저 설치해준다.


libev는 기본 repo에는 없고 epel에서 찾을수 있다.



[root@localhost ~]# yum install -y libev 


[root@localhost ~]# rpm -ivh percona-xtrabackup-24-2.4.3-1.el6.x86_64.rpm


[root@localhost ~]# rpm -ql percona-xtrabackup-24

/usr/bin/innobackupex

/usr/bin/xbcloud

/usr/bin/xbcloud_osenv

/usr/bin/xbcrypt

/usr/bin/xbstream

/usr/bin/xtrabackup

/usr/share/doc/percona-xtrabackup-24-2.4.3

/usr/share/doc/percona-xtrabackup-24-2.4.3/COPYING

/usr/share/man/man1/innobackupex.1.gz

/usr/share/man/man1/xbcrypt.1.gz

/usr/share/man/man1/xbstream.1.gz

/usr/share/man/man1/xtrabackup.1.gz


설치내역은 굉장히 단촐하다. 백업 및 복구에 있어 핵심파일은 /usr/bin/xtrabackup 이고


실제 작업시에는 innobackupex를 사용한다. 



inoobackupex는 C로 만들어진 xtrabackup를  내부적으로 호출하는 펄스크립트로


스트리밍이라던지 추가 기능들을 더 쉽게 사용할수 있게 해준다.


그런데 2.1 버전은 분명 perl 스크립트였는데 2.4 버전은 바이너리로 바뀌어 있더라...



암튼.. 그래서 이후로 모든 작업은 innobackupex 를 사용할 예정이고 xtrabackup 을 직접 실행하지 않을것이다.




to Top