# 백업 대상 데이터베이스에 접근 권한이 있는 계정을 입력 해야 한다.
# 특정 데이터베이스 백업
# password는 -p 와 패스워드 사이에 공백이 없어야 한다.
mysqldump -h $MARIADB_SERVER_HOSTNAME --database $DB_NAME_1 $DB_NAME_2 $DB_NAME_3 -u $USERNAME -p$PASSWORD > $MARIADB_BACKUP_FILE_NAME.sql
# 특정 데이터베이스 백업 (압축)
mysqldump -h $MARIADB_SERVER_HOSTNAME --database $DB_NAME_1 $DB_NAME_2 $DB_NAME_3 -u $USERNAME -p$PASSWORD |gzip > $MARIADB_BACKUP_FILE_NAME.tgz
# 모든 데이터베이스 백업
mysqldump -h $MARIADB_SERVER_HOSTNAME --all-database -u $USERNAME -p$PASSWORD > $MARIADB_BACKUP_FILE_NAME.sql
# 모든 데이터베이스 백업 (압축)
mysqldump -h $MARIADB_SERVER_HOSTNAME --all-databases -u $USERNAME -p$PASSWORD |gzip > $MARIADB_BACKUP_FILE_NAME.tgz
vi mariadb_backup.sh
#!/bin/bash
# Set variables
DB_USER="$DB_USER_NAME"
DB_PASS="$DB_USER_PASSWORD"
BACKUP_DIR="/$PATH/$TO/$BACKUP/$FILE/$DIRECTORY"
DATE=$(date +\%Y-\%m-\%d_\%H-\%M-\%S)
BACKUP_FILE_NAME="$BACKUP_DIR/$BACKUP_FILE_NAME.sql.gz"
# 백업 디렉토리가 존재하는지 확인. 없으면 생성.
mkdir -p $BACKUP_DIR
# 모든 데이터 베이스 대상으로 백업 수행
mysqldump -u $DB_USER -p$DB_PASS --all-databases | gzip > $BACKUP_FILE_NAME
# 30일이 경과한 백업 파일 삭제
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +30 -exec rm {} \;
chmod +x mariadb_backup.sh
crontab -e
# 상황에 맞게 일정 조정
# 매주 일요일 새벽 2시에 백업
0 2 * * 0 /$PATH/$CONTAINED/mariadb_backup.sh
MariaDB, MySQL 모두 mysqldump 를 이용해 백업한다. ↩︎