mysql DB 자동백업 방법

개요

매일 일정한 시간에 mysql DB를 자동으로 백업 받는 방법에 대해 정리해보았습니다.

백업 폴더 생성

루트에 /data_backup 폴더를 만들고 그 아래에 db 폴더를 생성합니다.

~# mkdir /data_backup
~# mkdir /data_backup/db

mysql DB 백업 스크립트 작성

~# vi /bin/db_backup.sh

#!/bin/bash
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_DIR=/data_backup/db/

# 전체 DB를 백업할 경우
mysqldump -u root -p디비패스워드 --all-databases > $BACKUP_DIR"backup_"$DATE.sql

# 특정 DB를 백업할 경우
# mysqldump -u root -p디비패스워드 --databases DB명  > $BACKUP_DIR"backup_"$DATE.sql



find $BACKUP_DIR -ctime +7 -exec rm -f {} \;

# DATE=$(date +%Y%m%d%H%M%S)는 백업할 파일명을 
# 202001224505 와 같은 형식으로 저장할 수 있게 날짜를 변수로 담습니다.  
# find $BACKUP_DIR -ctime +7 -exec rm -f {} \;  
# 여기서 -ctime +7은 7일이 지난 백업 파일을 찾아서 삭제하기 위한 코드입니다.  

# 추가로 분 단위로 설정하려고 할 때는 아래와 같이 
# -cmin +10 처럼 작성하면 10분이 지난 파일을 찾아서 삭제하게 됩니다.
# find $BACKUP_DIR -cmin +10 -exec rm -f {} \;


# 백업 스크립트에 실행 권한을 부여합니다.
~# chmod 755 /bin/db_backup.sh

스케쥴링을 위한 crontab 설정

~# crontab -e

# 매일 새벽 6시에 백업이 진행됩니다.
00 06 * * * /bin/db_backup.sh


그 외 시간 설정 방법

# 30분 마다 실행
*/30 * * * * /bin/db_backup.sh

# 매주 일요일 새벽 6시에 실행
0 06 * * 0 /bin/db_backup.sh

# 매월 1일 새벽 6시에 실행
0 06 1 * * /bin/db_backup.sh

# 매년 12월 31일 새벽 6시에 실행
0 06 31 12 * /bin/db_backup.sh

참고 URL

https://www.ncloud.com/product/database

문서 최종 수정일 : 2021-06-11

- Series

×

Subscribe

The latest tutorials sent straight to your inbox.