找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 21|回复: 0

我自己动手写了一个MySQL自动化备份脚本,基于docker

[复制链接]

1

主题

10

回帖

146

积分

管理员

积分
146
发表于 2025-10-15 00:48:55 | 显示全部楼层 |阅读模式

MySQL自动化备份Docker方案

该方案仅需通过 Docker Compose 就能轻松完成部署。你可以自由配置数据库连接信息,无论是远程数据库,还是本地数据库,都能实现无缝对接。在备份频率设置上,支持按固定秒数间隔执行备份任务,比如设置 INTERVAL_SECONDS=3600,即可实现每小时自动备份;若设为 INTERVAL_SECONDS=86400,则能达成每日备份。

备份文件管理方面,它同样表现出色。你可以将备份文件存储在宿主机指定目录,像 /vol2/1000/mysqlbackup,保障数据持久化存储。同时,提供按天数或文件数量两种保留策略,选择按天数保留,设置 RETENTION_DAYS=7,就能自动清理 7 天前的旧备份;若选择按文件数保留,配置 RETENTION_COUNT=10,则只留存最新的 10 个备份文件,有效节省存储空间。

此方案不仅适合个人开发者保障数据安全,对于企业级数据库备份场景也同样适用。它操作便捷、配置灵活,能为你的数据安全保驾护航。 快来试试这个 MySQL 自动化备份 Docker 方案,开启轻松备份新体验!

方案特点

  • 间隔时间备份:按固定秒数间隔执行备份任务
  • 灵活保留策略:可按天数或文件数量自动清理旧备份
  • 远程数据库支持:直接连接远程MySQL数据库进行备份
  • 持久化存储:备份文件存储在宿主机指定目录,确保数据安全

Docker Compose 配置

以下是简化后的Docker Compose配置:

version: '3'services:  mysql-backup:    image: fjsay/mysql-backup:latest    container_name: mysql-backup    environment:      - DB_HOST=xxxxx                          # 数据库主机地址      - DB_PORT=3306                            # 数据库端口(默认3306)      - DB_USER=xxxxx                          # 数据库用户名      - DB_PASSWORD=xxxxx                      # 数据库密码      - DB_NAME=xxxxxx                         # 要备份的数据库名称(留空备份所有库)      - BACKUP_MODE=interval                   # 固定为间隔模式      - INTERVAL_SECONDS=43200                 # 备份间隔时间(秒)      - BACKUP_DIR=/backups                    # 容器内备份目录(保持默认)      - RETENTION_POLICY=days                  # 保留策略:days(按天)或 count(按文件数)      - RETENTION_DAYS=365                     # 按天保留时的天数(默认7天)      - RETENTION_COUNT=10                     # 按文件数保留时的数量(默认10个)    volumes:      - /vol2/1000/mysqlbackup:/backups       # 宿主机备份目录挂载    restart: always                           # 容器异常退出时自动重启

配置参数说明

数据库连接参数

参数名说明示例值
DB_HOST数据库主机地址(支持域名或 IP)mysql.example.com
DB_PORT数据库端口3306
DB_USER数据库用户名backup_user
DB_PASSWORD数据库密码strong_password
DB_NAME要备份的数据库名称(留空则备份所有数据库)my_database
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站由纳斯五零(NAS50.CN),版权所有,保留部分权利。豫ICP备2023035803号-1

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-10-24 06:39 , Processed in 0.148393 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.