Full Backup - 선택된 디렉토리의 Data를 모두 백업하는 방식
Incremental Backup - 선택된 디렉토리의 Full 백업 이후 추가된 Data만 백업하는 방식
Data의 양이 많아지면 Full Backup을 통한 백업/복구 작업에 상당한 시간이 걸리기 때문에 Incremental Backup을 수행하여 백업/복구의 시간을 단축할 수 있다.
MariaDB 데이터를 백업하는 방법은 크게 논리적 백업과 물리적 백업이 있다.
빠르다.
백업 기준 약 2배 / 복원 기준 약 6배 차이 발생
Percona사의 XtraBackup으로 부터 Fork 해서 만든 MariaDB 물리적 백업 툴 이다.
MariaDB의 전체 혹은 증분 백업을 할 때 사용한다. 전체 백업은 말 그대로 빈 디렉토리에 complete 한 복사본을 만드는 작업이고, 증분 백업은 이전 백업에 새로운 데이터를 추가하면서 백업하는 작업 방식이다.
InnoDB 페이지는 연속된 숫자(혹은 LSN(Log Sequence Number))의 로그를 포함한다. 테이블에 어떤 작업을 수행해도 스토리지 엔진은 해당 숫자를 증가시킨다. 증분백업을 수행할 때 Mariabackup은 가장 최근 LSN을 확인한다.
sudo apt-get install mariadb-backup
--backup
옵션과 --target-dir
옵션으로 백업파일이 위치할 디렉토리를 지정해 주어야 한다. 해당 디렉토리는 비어있거나 존재하지 않아야 한다.mariabackup --backup \
--target-dir = /bar/mariadb/backup \
--user=mariabackup --password=mypassword
해당 작업은 전체 database를 target-dir에 백업한다.
--backup
, --tartget-dir
, --incremental-basedir
옵션이 필요하다. 타겟 디렉토리는 빈 디렉토리 이어야 한다.mariabackup --backup \
--target-dir=/var/mariadb/inc1/ \
--incremental-basedir=/var/mariadb/backup/ \
--user=mariabackup --password=mypassword
추가 증분 백업 작업을 진행하기 위해서는 아래와 같이 --target-dir
, --incremental-basedir
을 수정해서 수행하면 된다.
mariabackup --backup \
--target-dir=/var/mariadb/inc2/ \
--incremental-basedir=/var/mariadb/inc1/ \
--user=mariabackup --password=mypassword
--prepare
옵션을 사용하여 복구 준비를 진행하면 된다.mariabackup --prepare \
--target-dir=/var/mariadb/backup
mariabackup --prepare \
--target-dir=/var/mariadb/backup \
--incremental-dir=/var/mariadb/inc1
--copy-back
혹은 —-move-back
옵션을 통해 백업을 데이터 디렉토리로 복원할 수 있다. copy-back
옵션은 backup 파일을 남겨두고, move-back
옵션은 backup파일을 삭제한다. (--datedir
옵션으로 정의된 데이터 디렉토리에 복구된다.)mariabackup --copy-back \
--target-dir=/var/mariadb/backup/
5 . 복구 이후, owner
는 복구 명령을 수행한 user와 group으로 설정되기 때문에 확인 할 필요가 있다.
chown -R mysql:mysql /var/lib/mysql
$ docker stop
)장애와 관련된 XtraBackup 적용기 | 우아한형제들 기술블로그