Mysql&MariaDB

MariaBackup 자동백업 스크립트

ksk04 2025. 7. 20. 16:24
  • Xtrabackup을 모방한 툴이며 mariadb 10.4 이상부터 지원하는 물리백업 툴이다.
## crontab -e

# 매일 오후 10시에 mariadb_backup.sh 실행
2 0 * * * /backup/scripts/mariadb_backup.sh
  • 백업 쉘 스크립트
#!/bin/bash

DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_DIR="/data/hotbackup"
TMP_BACKUP_DIR="${BACKUP_DIR}/mariabackup_${DATE}"
ZIP_FILE="${BACKUP_DIR}/mariabackup_${DATE}.zip"

BASEDIR="/usr/mariadb"
USER="root"
PASSWORD="1234"
SOCKET="/data/mariadb/mysql.sock"
DATADIR="/data/mariadb"
MBACKUP_BIN="$BASEDIR/bin/mariabackup"

# 임시 백업 폴더 생성
mkdir -p "$TMP_BACKUP_DIR"

# mariabackup 백업 실행 (백업 데이터 저장)
$MBACKUP_BIN --backup --target-dir="$TMP_BACKUP_DIR" --user="$USER" --password="$PASSWORD" --socket="$SOCKET" --datadir="$DATADIR"

if [ $? -ne 0 ]; then
  echo "❌ mariabackup 백업 실패"
  rm -rf "$TMP_BACKUP_DIR"
  exit 1
fi

# 백업 폴더를 zip 압축
cd "$BACKUP_DIR"
zip -r "$ZIP_FILE" "$(basename "$TMP_BACKUP_DIR")"

if [ $? -eq 0 ]; then
  echo "✅ 백업 및 압축 완료: $ZIP_FILE"
  rm -rf "$TMP_BACKUP_DIR"
else
  echo "❌ 압축 실패"
fi

# 7일 이상 지난 백업 zip 및 디렉토리 삭제
find "$BACKUP_DIR" -name "mariabackup_*" -mtime +7 -exec rm -rf {} \\;

'Mysql&MariaDB' 카테고리의 다른 글

my.cnf 설정  (1) 2024.12.27
마리아_DB 시작하기  (4) 2024.09.14
Mysql 설치 (centos 7)  (2) 2024.09.13
Galeracluster & MariaDB 10.5.26 구성하기  (2) 2024.08.26