Ubuntu 上 SQLAdmin 的备份策略
一 策略总览
二 推荐方案 自动化脚本 + Cron
#!/usr/bin/env bash
set -Eeuo pipefail
DB_HOST="localhost"
DB_USER="backup_user"
DB_PASS="StrongPass!23"
DB_NAME="your_db"
BACKUP_DIR="/backup/mysql"
LOG_FILE="$BACKUP_DIR/backup.log"
RETENTION_DAYS=7
DATE=$(date +"%Y%m%d%H%M%S")
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}-${DATE}.sql.gz"
# 创建目录
mkdir -p "$BACKUP_DIR"
# 执行备份(--single-transaction 适用于 InnoDB;--routines/--triggers 视需求开启)
mysqldump -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" \
--single-transaction --routines --triggers --default-character-set=utf8mb4 \
"$DB_NAME" | gzip > "$BACKUP_FILE"
# 结果记录
if [ $? -eq 0 ]; then
echo "$(date '+%F %T') SUCCESS: $BACKUP_FILE" >> "$LOG_FILE"
# 保留策略
find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete
else
echo "$(date '+%F %T') FAILED: $BACKUP_FILE" >> "$LOG_FILE"
exit 1
fi
三 使用 SQLAdmin 界面导出
四 恢复流程与验证
五 安全与运维要点