기술노트

기술노트

게시물 상세
mysql bakcup tool - XtraBackup 2 : 추가 옵션 및 증분 백업
작성자 : 관리자(jieun@ehostidc.co.kr)  작성일 : 2019-03-08   조회수 : 12934

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. 전체 백업에 대해 한달 보관





이전글 mysql 기본 쿼리 1
다음글 mysql bakcup tool - XtraBackup