白嫖宝塔专业版之数据库差异备份-xtrabackup-Docker版 | 免授权使用 | MySQL 差异备份脚本实战

🔧 适用于:MySQL 5.7(其他版本需测试)
🧱 技术栈:Docker + Xtrabackup + Shell 脚本


🔍 项目背景

宝塔面板内置了【数据库差异备份】功能,但仅专业版可用。本项目旨在使用 开源免费工具 + Docker 模拟出同等效果甚至更强的差异备份能力,完全绕过宝塔付费限制,让你白嫖得明明白白!


✅ 实现效果

  • ⏳ 支持 自动判断全量 or 增量备份

  • ♻️ 支持 备份数据合并与还原

  • 🔁 支持 定时任务全自动执行

  • 🚫 无需宝塔授权,不用花钱!


📋 前置要求

条件 说明
✅ 已安装 Docker 系统需支持 Docker,建议 Ubuntu / Debian
🔧 系统资源 建议 2核 2G 内存以上
⚠️ 数据库版本 当前支持 MySQL 5.7(Xtrabackup 2.4)
🧩 是否安装宝塔 非必需,如无宝塔需自行配置路径

🛠 配置项说明(修改脚本前请注意)

MYSQL_USER="root"                     # 数据库用户名(建议 root)
MYSQL_PASSWORD="yourpassword"        # 数据库密码
BACKUP_DIR="/backup"                 # 所有备份统一放这里
FULL_BACKUP_INTERVAL=7               # 每 N 天执行一次全量备份
XTRABACKUP_IMAGE="percona/percona-xtrabackup:2.4"
MYSQL_DATA_DIR="/www/server/data"    # MySQL 数据目录(宝塔默认)

📦 核心功能模块

1️⃣ 自动备份调度逻辑

  • ✅ 每次运行自动判断是否进行“全量”或“增量”备份

  • ✅ 每次备份自动记录并命名为时间戳文件夹

2️⃣ 备份脚本自动执行命令

# 添加执行权限
chmod +x /path/to/backup_script.sh

# 添加定时任务(每天凌晨2点执行)
crontab -e
0 2 * * * /path/to/backup_script.sh

3️⃣ 备份恢复命令示例

# 准备包含多个增量的恢复目录(顺序传入)
prepare_backup "$FULL_BACKUP_DIR/20250502120000" 
               "$INCREMENTAL_BACKUP_DIR/20250503120000" 
               "$INCREMENTAL_BACKUP_DIR/20250504120000"

# 恢复数据库(此操作会停止 MySQL 并清空数据目录)
restore_backup "$FULL_BACKUP_DIR/20250502120000"

📜 脚本核心逻辑结构(简要)

  1. 判断是否存在上次全量备份

  2. 若无则执行首次全量备份

  3. 若存在则判断距离是否超出 FULL_BACKUP_INTERVAL

  4. 超期 => 再次全量备份 | 否则 => 增量备份

  5. 使用 Docker 启动 xtrabackup 容器进行数据拷贝


💡 提示与建议

  • 如非宝塔环境,需修改 MYSQL_DATA_DIRMYSQL_CONFIG_FILE 等默认路径

  • 建议每周进行一次 人工全量备份测试

  • 可配合 rclone 将备份同步到阿里云盘 / Google Drive


📁 下载 / 参考地址

我用夸克网盘分享了「xtrabackup-docker差量备份MySQL.sh」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
链接:https://pan.quark.cn/s/4ad869d0359c


⚠️ 免责声明

此脚本仅用于学习研究用途,严禁用于非法用途。请勿在生产环境中部署未经测试的备份与恢复逻辑!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容