mysql bakcup tool - XtraBackup 2 : 추가 옵션 및 증분 백업
1. 활용 가능한 옵션
innobackupex --default-file=my.cnf my.cnf 경로 --host=${backup_host} --port=${backup_port} --user=${backup_user} --password=${backup_password} --parallel=4 thread 처리 --no-lock table lock 방지 --use-memory=4gb 메모리 할당
--parallel , --use-memory 의 경우 사용시 백업 성능 향상
2. 전체 백업용 스크립트
#!/bin/sh BACKUP_DIR="/backup/" TODAY=`date +%Y%m%d` USER= PASS= HOST=
mkdir $BACKUP_DIR/$TODAY innobackupex --user=$USER --password=$PASS --no-lock --use-memory=4gb --no-timestamp $BACKUP_DIR/$TODAY
-- 기본 타임 스탬프 설정대신 날짜 지정 처리
3. 증분 백업용 스크립트
- 전일 백업의 lsn 을 확인해 이후 백업
#!/bin/sh BACKUP_DIR="/backup/" TODAY=`date +%Y%m%d` YESTERDAY=`date +%Y%m%d -d yesterday` USER= PASS= HOST= mkdir $BACKUP_DIR/$TODAY LSN=`grep to_lsn $BACKUP_DIR/$YESTERDAY/xtrabackup_checkpoints | awk "{ print $3 }"` innobackupex --user=$USER --password=$PASS --no-lock --use-memory=4gb --incremental --incremental-lsn=$LSN --no-timestamp $BACKUP_DIR/$TODAY
4. 증분 백업 확인
a. 전일 백업의 마지막 lsn 확인
b. 증분 백업의 lsn 확인
-- 전일 백업의 to_lsn = from_lsn
5. 증분 백업을 전체 백업에 합치기
- 전체백업 + 증분백업의 경우 복원시 전체 백업 복원 후 증분 백업을 재 복원해야 하는 이슈가 있음
- 복원시 증분 백업을 전체 백업에 합쳐서 전체 백업만 복원 진행하는 것이 편함.
- 옵션 : –apply-log –redo-only
innobackupex --apply-log --redo-only /전체백업 innobackupex --apply-log --redo-only /전체백업 --incremental-dir=/증분백업_1 innobackupex --apply-log --redo-only /전체백업 --incremental-dir=/증분백업_2
-- to_lsn 정보가 전체백업과 증분 백업에서 모두 동일
-- 백업을 합친 이후에는 증분 백업 삭제
6. 시나리오
a. 일요일 새벽에 전체 백업
b. 월~토 증분 백업 및 전체 백업 합치기
c. 증분 백업 삭제
d. 전체 백업에 대해 한달 보관
|