Debian 上 MySQL 备份策略与落地步骤
一 策略总览
二 推荐方案与实施步骤
方案A 逻辑备份(mysqldump/mysqlpump)
#!/usr/bin/env bash
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +"%Y%m%d_%H%M%S")
LOG="$BACKUP_DIR/backup_$DATE.log"
DB_USER="backup"
DB_PASS="YourStrongPass"
# 单库示例;多库用 --databases db1 db2;全库用 --all-databases
mysqldump -u"$DB_USER" -p"$DB_PASS" --single-transaction --routines --triggers --default-character-set=utf8mb4 \
your_db > "$BACKUP_DIR/your_db_$DATE.sql"
if [ $? -eq 0 ]; then
gzip "$BACKUP_DIR/your_db_$DATE.sql"
echo "[$DATE] OK: $BACKUP_DIR/your_db_$DATE.sql.gz" >> "$LOG"
else
echo "[$DATE] FAIL" >> "$LOG"
fi
# 保留 7 天
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +7 -delete
方案B 物理备份(Percona XtraBackup,适合大库/零停机)
三 时间点恢复与验证
四 自动化与运维要点