温馨提示×

SQLAdmin在Ubuntu中的备份频率如何设置

小樊
35
2025-12-08 03:54:30
栏目: 云计算

在 Ubuntu 中设置 SQLAdmin 备份频率

一 概念澄清与总体思路

  • 在 Ubuntu 环境中,很多教程把 SQLAdmin 当作数据库管理工具的名称,但实际使用的是 mysqladminmysqldump 来执行备份;也有文章将其作为具备命令行子命令的工具(如 sqladmin backup)。无论采用哪种方式,备份频率都通过 cron 定时任务来控制,只需调整 crontab 的时间表达式即可。

二 使用 SQLAdmin 命令行设置频率

  • 若你的环境提供 sqladmin 命令行工具(支持如 sqladmin backup 的子命令),可用以下方式设置频率:
    1. 创建备份脚本(示例):
      #!/usr/bin/env bash
      LOG="/var/log/sqladmin_backup.log"
      TS=$(date +"%F_%H-%M-%S")
      OUT="/var/backups/sqladmin_${TS}.sql.gz"
      
      sqladmin backup -d mydatabase -o "$OUT" >> "$LOG" 2>&1
      if [ $? -eq 0 ]; then
        echo "[$TS] Backup succeeded: $OUT" >> "$LOG"
      else
        echo "[$TS] Backup failed" >> "$LOG"
      fi
      
    2. 赋权:chmod +x /usr/local/bin/backup_sqladmin.sh
    3. 通过 cron 设置频率(编辑当前用户的 crontab):crontab -e
      • 每天 02:00:0 2 * * * /usr/local/bin/backup_sqladmin.sh
      • 2 小时:0 */2 * * * /usr/local/bin/backup_sqladmin.sh
      • 每周一 02:00:0 2 * * 1 /usr/local/bin/backup_sqladmin.sh
      • 每月 102:00:0 2 1 * * /usr/local/bin/backup_sqladmin.sh
    4. 验证:手动执行脚本并检查日志与备份文件是否生成。

三 使用 mysqladmin mysqldump 设置频率

  • 若没有 sqladmin 命令,可直接用 mysqldump 完成备份并通过 cron 控制频率:
    1. 备份脚本示例(单库,压缩):
      #!/usr/bin/env bash
      BACKUP_DIR="/var/backups/mysql"
      mkdir -p "$BACKUP_DIR"
      LOG="$BACKUP_DIR/backup.log"
      TS=$(date +"%F_%H-%M-%S")
      FILE="$BACKUP_DIR/db_${TS}.sql.gz"
      
      mysqldump -h localhost -u dbuser -p'dbpass' --single-transaction --routines --triggers mydb | gzip > "$FILE"
      if [ $? -eq 0 ]; then
        echo "[$TS] Dump OK: $FILE" >> "$LOG"
      else
        echo "[$TS] Dump FAILED" >> "$LOG"
      fi
      
    2. 赋权:chmod +x /usr/local/bin/backup_mysql.sh
    3. 设置 cron(示例同上),如每天 02:00:0 2 * * * /usr/local/bin/backup_mysql.sh
    4. 全库备份可用:mysqldump -h localhost -u root -p --all-databases > “$FILE”。

四 频率建议与保留策略

  • 频率建议
    • 高变更业务:建议 每 2–4 小时 一次(0 */2–4 * * *),并配合 每日 全量备份。
    • 一般业务:每日 全量(0 2 * * *)。
    • 关键数据:在每日全量基础上,增加 每周 全量与 每月 全量,便于快速恢复与长期归档。
  • 保留与清理
    • 在备份脚本中加入保留天数(如 7 天)并删除过期文件,避免磁盘被占满:
      find "$BACKUP_DIR" -name "*.sql*" -mtime +7 -delete
      
    • 定期做恢复演练,验证备份可用性与完整性。

0