MySQL InnoDB 핫백업 및 복구 방법은 무엇인가요?
💡 요약 정리
- MySQL 서버를 중단하지 않고 InnoDB 데이터를 백업하려면 XtraBackup 도구를 사용합니다.
innobackupex명령어로 데이터 백업 및 복구를 수행합니다.--apply-log,--copy-back등의 옵션 설정과 경로 지정이 중요합니다.- 복구 전 데이터 디렉터리는 반드시 존재해야 하며, 퍼미션도 설정해주 어야 합니다.
- 과정 중
completed OK!메시지를 확인하여 성공 여부를 판단합니다.
1. 설치 환경
- CentOS 5.x (64bit)
- RPM: percona-xtrabackup-2.0.0-417.rhel5
- MySQL 데이터 디렉토리:
/home/mysql/data
2. xtrabackup란?
- MySQL 서버를 중단시키지 않고 InnoDB 엔진도 핫백업이 가능한 오픈소스 프로그램입니다.
- MySQL 상용 백업 프로그램인 InnoDB Hot Backup보다 더 많은 기능을 제공합니다.
3. xtrabackup 설치
레포지토리 주소의 rpm을 설치한 후 yum으로 설치합니다.
[root@cafe24]# rpm -Uhv http://www.percona.com/redir/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
Retrieving http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
Preparing... ########################################### [100%]
1:percona-release ########################################### [100%]
[root@cafe24]# yum install xtrabackup
4. 데이터 백업
- 일반 DB 백업 후 로그 백업을 수행합니다. 경로 지정에 주의해야 합니다.
- 백업 시
datadir파라미터가 없다는 에러가 발생할 경우,my.cnf파일에datadir=/home/mysql/data설정이 필요합니다.
[root@cafe24 yum.repos.d]# innobackupex --user root --password xxxxxxxxx /home/DB_BACKUP
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Inc 2009-2012. All Rights Reserved.
This software is published under
the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
120524 17:29:42 innobackupex: Starting mysql with options: --password=xxxxxxxx --user='root' --unbuffered --
120524 17:29:42 innobackupex: Connected to database with mysql child process (pid=22951)
...
120524 17:30:07 innobackupex: completed OK!
백업 후 로그 적용:
[root@cafe24 DB_BACKUP]# innobackupex --user root --password xxxxxxxxx --apply-log /home/DB_BACKUP/2012-05-24_17-29-48
...
120524 17:31:46 innobackupex: completed OK!
[root@cafe24 DB_BACKUP]#
5. 데이터 복구
- MySQL 서버 중지
- 기존 DB 디렉토리를 백업하거나 이동
- 새 데이터 디렉토리 생성
innobackupex를 사용해 복구- MySQL 서버 재시작
복구 디렉토리 없을 경우 발생하는 에러 예시
[root@cafe24 mysql]# innobackupex --copy-back /home/DB_BACKUP/2012-05-24_17-29-48
...
Original data directory does not exist! at /usr/bin/innobackupex line 564.
[root@cafe24 mysql]#
올바른 복구 절차
[root@cafe24 mysql]# mkdir /home/mysql/data
[root@cafe24 mysql]# innobackupex --copy-back /home/DB_BACKUP/2012-05-24_17-29-48
...
innobackupex: completed OK!
6. 권한 설정 및 MySQL 서버 시작
복구 완료 후 아래 명령어로 데이터 디렉토리 권한을 변경하고 MySQL을 시작합니다.
[root@cafe24 mysql]# chown -R mysql.mysql /home/mysql/data
[root@cafe24 mysql]# /etc/rc.d/init.d/mysql start
Starting MySQL.... [ OK ]
[root@cafe24 mysql]#