Debian 上制定 MySQL 备份策略
一 目标与恢复点目标 RPO/RTO
二 备份方式与工具选型
三 推荐策略模板与保留
四 落地步骤与关键命令
sudo mkdir -p /var/backups/mysql;确保运行用户具备读写与远端写入权限。/usr/local/bin/backup_mysql.sh#!/usr/bin/env bash
set -Eeuo pipefail
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +"%Y%m%d_%H%M%S")
DB_USER="backup"
DB_PASS="YourStrongPass"
DB_NAME="your_db"
mkdir -p "$BACKUP_DIR"
mysqldump -u "$DB_USER" -p"$DB_PASS" --single-transaction --quick \
--routines --triggers --events --databases "$DB_NAME" \
| gzip -c > "$BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz"
# 远端同步(示例:rclone)
# rclone copy "$BACKUP_DIR" cloud:db-backups --transfers=4 --checkers=8 --fast-list
# 本地保留 7 天
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +7 -delete
sudo crontab -e 添加 0 2 * * * /usr/local/bin/backup_mysql.sh >> /var/log/backup_mysql.log 2>&1sudo xtrabackup --backup --target-dir=/opt/backup/full_$(date +%F) --user=backup --password=YourStrongPasssudo xtrabackup --prepare --target-dir=/opt/backup/full_$(date +%F)sudo xtrabackup --backup --target-dir=/opt/backup/inc_$(date +%F) --incremental-basedir=/opt/backup/full_$(date +%F) --user=backup --password=YourStrongPassmysql -e "SHOW MASTER STATUS\G" > /var/backups/mysql/binlog_pos.txtmysqlbinlog --start-datetime="2025-11-25 02:00:00" --stop-datetime="2025-11-25 03:00:00" /var/log/mysql/mysql-bin.000001 | mysql -u root -p[your_password]五 安全与运维要点