반응형

xtrabackup 이란?

 

xtrabackup은 percona 에서 무료로 제공하는 DB 핫 백업 툴입니다.

백업 시 암호화, 압축, 증분 백업 등 많은 기능이 포함되어있어

다양한 백업 정책을 만들 수 있으며, 핫 백업으로 mysqldump보다 빠른 백업 및 복구가 가능합니다.

지원되는 DB는 mysql (5.1, 5.5, 5.6, 5.7), xtraDB 가 있습니다.

 

xtrabackup 설치 방법

 

CentOS and RHEL

wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm 

rpm -ivH percona-release-0.1-4.noarch.rpm

yum install percona-xtrabackup-24

 

Debian and Ubuntu

wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb

sudo apt-get update

sudo apt-get install percona-xtrabackup-24 

 

xtrabackup 사용법

(테스트 환경이 innodb로 xtrabackup의 innobackupex를 이용하였습니다.)

참고 사항) xtrabackup 기본 설정으로 아래와 같이 설정되어있으니 

mysql 설정 파일 경로와 user가 다를경우 해당 옵션을 추가해야 정상적으로 백업이 됩니다.

--defaults-file=/etc/my.cnf 

--defaults-group=mysql 

 

전체 백업시 

innobackupex --user={DB유저} --password={패스워드} {백업경로}

ex) innobackupex --user=root --password=testpassword9* /home/backup/

 

경로를 지정하여 사용하고 싶으시다면 --no-timestamp 옵션을 추가하시기 바랍니다.

 

 

주의!

--no-timestamp 옵션 사용시 백업하는 대상 경로가 이미 생성되어있을 경우 백업이 진행되지 않으니

경로가 중복되지 않도록 설정해 주시기 바랍니다.

 

복원 방법

 

1. 복원 준비

innobackupex --apply-log {full백업 경로}

2. 복원

mysqld 정지 후 mysql datadir 하위에 있는 데이터 삭제 (폴더 지우면 복원이 안됩니다.)

innobackupex 명령어로 백업본 복사

복사 완료 후 mysql 유저 권한 부여

mysqld 시작하여 데이터 확인

 

# service mysqld stop

# rm -rf {mysql datadir}/*

# innobackupex --copy-back {full백업 경로}

# copy 작업 완료 후 폴더 권한 변경

# chown -R mysql:mysql {mysql datadir}

# service mysqld start

 

 

증분백업 방법

전체 백업 진행 후 해당 경로 하위에 있는 xtrabackup_checkpoints 파일의 last_lsn 정보를 불러와 해당 시점부터 증분된 정보를 백업( MyISAM 형식의 테이블은 항상 전체 백업이 진행됩니다.)

 

사용옵션

--incremental 

--incremental-basedir=(증분 대상 백업 폴더)

--incremental-lsn=(lsat_lsn 값)

 

사용예제

 

1. 전체 백업 진행

innobackupex --user={DB유저} --password={패스워드} {백업경로}

 

 

2. 증분 백업

 innobackupex --user={DB유저} --password={패스워드} --incremental --incremental-basedir={전체 백업 경로} {백업 경로}

innobackupex --user={DB유저} --password={패스워드} --incremental --incremental-basedir={이전 증분 백업 경로} {백업 경로}

 

증분백업 복원 방법

1. 복원 준비

아래와 같이 증분 백업 파일을 전체 백업 파일에 추가하는 작업이 진행되어야합니다.

증분 백업을 합칠때 여러개의 증분 백업이 있다면 순차적으로 추가 작업을 진행하시기 바랍니다.

 

innobackupex --apply-log --redo-only {전체 백업 경로}

innobackupex --apply-log --redo-only {전체 백업 경로} {증분 백업 경로}

innobackupex --apply-log {전체 백업 경로}

 

2. 복원

전체 백업 복원하는방법과 동일합니다.

 

# service mysqld stop

# rm -rf {mysql datadir}/*

# innobackupex --copy-back {full백업 경로}

# copy 작업 완료 후 폴더 권한 변경

# chown -R mysql:mysql {mysql datadir}

# service mysqld start

 

[출처] xtrabackup 사용법|작성자 엔클라우드24

반응형

+ Recent posts