MariaDB 백업은 mariabackup 명령어를 사용한다. mariabackup으로 풀 백업(전체 백업)과 증분 백업을 할 수 있는데, 풀 백업은 크기가 크기 때문에 일주일에 한 번 정도 실행하고 풀 백업 파일을 기준으로 증분 백업을 매일 실행한다.
이렇게 풀 백업과 증분 백업을 이용하여 하루에 한 번씩 백업을 하고, 실시간으로 binlog를 남기면 장애 발생 시 해당 날짜까지의 데이터는 풀+증분 백업으로 복구한 후 장애 시간까지의 데이터는 binlog를 이용하여 복구하면 된다.
여기에서는 mariabackup을 이용한 풀 백업과 증분 백업에 대한 설정 내용을 정리한다.
1. 백업 경로 생성
mkdir /data/mariadb/backup
chown mysql:mysql /data/mariadb/backup
2. 백업 스크립트 작성
풀 백업 (full backup)
풀 백업을 실행하며 일주일이 지난 파일은 삭제한다. (실제로 8일 또는 9일쯤 될 것이다.)
vi $HOME/full_backup.sh
#!/bin/bash
dir="/data/mariadb/backup/"
target_dir="${dir}full_backup.`date +%Y%m%d`"
/mariadb/bin/mariabackup --defaults-file=/etc/my.cnf --backup --target-dir=${target_dir} \
--user=root --password=패스워드 --no-lock
find ${target_dir} -type d -mtime +7 -name 'full*' -exec rm -rf {} +;
크론에서 실행하기 위해 실행권한을 추가한다.
chmod 755 $HOME/full_backup.sh
증분 백업 (incremental backup)
마지막 풀 백업 기준으로 증분백업을 하고 일주일 이상 지난 파일은 삭제한다.
vi $HOME/incr_backup.sh
#!/bin/bash
dir="/data/mariadb/backup/"
base_dir="`ls -1Artd ${dir}*_backup.*| tail -n 1`"
target_dir="${dir}incr_backup.`date +%Y%m%d`/"
/mariadb/bin/mariabackup --defaults-file=/etc/my.cnf --backup --target-dir=${target_dir} \
--incremental-basedir=${base_dir} \
--user=root --password=패스워드 --no-lock
find ${target_dir} -type d -mtime +7 -name 'incr*' -exec rm -rf {} +;
크론에서 실행하기 위해 실행권한을 추가한다.
chmod 755 $HOME/incr_backup.sh
3. 크론 등록
crontab -e
풀 백업: 일주일에 한 번 실행
증분 백업: 하루에 한 번 실행
0 0 * * 6 $HOME/full_backup.sh
0 0 * * * $HOME/incr_backup.sh
4. 확인
크론 시간 이후, 스크립트의 $target_dir 내에 파일이 생성되었는지 확인하고, 이상이 있을 경우 /var/log/cron을 확인한다.
'IT > 리눅스' 카테고리의 다른 글
Java 여러 버전 설치, 관리하기 (update-alternatives) (0) | 2024.08.04 |
---|---|
마리아디비(MariaDB) 덤프 생성하기 (0) | 2024.07.29 |
마리아디비(MariaDB) 리눅스(Linux)에 설치하기 (0) | 2024.07.26 |
톰캣에서 루트(root) 권한 없이 80, 443 포트 사용하기 (0) | 2024.07.24 |
Bash Programming-2.Redirection (0) | 2024.07.22 |