SERVER : CENTOS 6.X / 64BIT / xtrabackup 설치 및 운용
MYSQL Inoodb 백업을 위해서 오픈소스를 사용한다 오픈소스는 xtrabackup /
데이터 파일을 복사하는 방식의 백업 방식이라 실제 원본의 데이터 파일 사이즈보다 디스크 공간을 더 차지한다
간단하게 YUM 패키지를 이용하여 설치 및 백업 및 복구를 진행해 본다
1. 패키지 설치
32bit : rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.i386.rpm
64bit : rpm -Uvh http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
1 2 3 |
# rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm # yum -y install xtrabackup |
2. 설치가 완료되었으면 명령어를 통해 백업을 진행하면 된다. 먼저 FULL BACKUP을 진행해 보자
우선 backup할 폴더명을 생성 후 작업 진행
1 2 3 |
# mkdir /backup/mysql # innobackupex --defaults-file=/etc/my.cnf --user root --password 'password' /backup/mysql |
* 정상적으로 백업이 진행되지 않고 아래와 같은 에러가 발생되는 경우 모듈 부분에 문제가 있으니 해당 패키지 설치
151120 15:24:03 innobackupex: Connecting to MySQL server with DSN
innobackupex: Error: Failed to connect to MySQL server as DBD::mysql module is not installed at /usr/bin/innobackupex line 2956.
perl 모듈이 존재하는 경우 버전이 출력
1 2 |
# perl -MDBD::mysql -e 'print $DBD::mysql::VERSION' 4.013 |
perl 모듈이 존재하지 않는 경우 에러 발생
1 2 3 4 |
# perl -MDBD::mysql -e 'print $DBD::mysql::VERSION' Can't load '/usr/local/lib64/perl5/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.18: 동적 오브젝트 파일을 열 수 없습니다: 그런 파일이나 디렉터리가 없습니다 at /usr/lib64/perl5/DynaLoader.pm line 200. at -e line 0 Compilation failed in require. BEGIN failed--compilation aborted. |
yum 의존성으로 2가지 파일을 설치 진행해 주자
1 |
# yum install Percona-Server-shared-compat-51 perl-DBD-MySQL |
3. 다시 정상적으로 백업을 진행 (정상적으로 백업이 진행된것을 확인 할 수 있다)
my.cnf 파일에는 data_dir 폴더가 지정되어 있어야 한다
1 2 3 4 5 |
[root@xinet ~]# innobackupex --defaults-file=/etc/my.cnf --user root --password 'qqq123' /backup/database_backup/ innobackupex: Backup created in directory '/backup/database_backup/2015-11-20_15-51-01' 151120 15:51:10 innobackupex: Connection to database server closed 151120 15:51:10 innobackupex: completed OK! |
4. 백업 된 것을 이제 복원을 진행해 보자
기존 mysql 디렉토리가 /free/mysql_data 폴더였다면 mv 로 이름을 변경 그리고 다시 폴더 생성 후 권한 설정
1 2 3 4 5 |
[root@xinet ~]# mv /free/mysql_data /free/mysql_data_ori [root@xinet ~]# mkdir /free/mysql_data [root@xinet ~]# chown -R mysql:mysql /free/mysql_data |
백업 로그를 적용
1 2 3 4 |
[root@xinet ~]# innobackupex --apply-log /backup/database_backup/2015-11-20_15-51-01/ 151120 15:57:05 InnoDB: Shutdown completed; log sequence number 139845132 151120 15:57:05 innobackupex: completed OK! |
최종 백업 복원을 진행한다 ( 이때 새로 생성한 폴더에는 아무런 파일이 존재하지 않아야 한다) 백업 완료 후 권한 설정
1 2 3 4 5 |
[root@xinet ~]# innobackupex --copy-back /backup/database_backup/2015-11-20_15-51-01/ 151120 15:58:16 innobackupex: completed OK! [root@xinet ~]# chown -R mysql:mysql /free/mysql_data |
mysql 재시작 정상적으로 올라 왔는지 확인
1 2 |
[root@xinet mysql_data]# mysql.server start Starting MySQL.. [ OK ] |
증분 백업도 가능하다 / 추후 진행시에 증분백업 부분에 대해서 다시 작성