tiredofit/docker-db-backup终极配置:环境变量详解与最佳实践

【免费下载链接】docker-db-backup tiredofit/docker-db-backup: 是一个用于备份 MySQL 和 PostgreSQL 数据库的 Docker 容器,它使用 Tar 命令备份数据库数据,并可以将备份数据加密。适合用于在 Docker 环境下备份 MySQL 和 PostgreSQL 数据库,特别是对于需要自动化备份和加密数据库数据的场景。特点是 Docker 容器、支持 MySQL 和 PostgreSQL、备份和加密数据库数据。 【免费下载链接】docker-db-backup 项目地址: https://gitcode.com/gh_mirrors/do/docker-db-backup

tiredofit/docker-db-backup是一个强大的Docker容器,专为备份MySQL和PostgreSQL数据库设计,支持Tar命令备份和数据加密功能。本文将详细解析其核心环境变量配置与最佳实践,帮助新手用户快速实现Docker环境下的数据库自动化备份。

一、容器基础配置:启动前必知参数

运行模式与权限控制

  • MODE:设置备份模式,AUTO(默认)启用内置调度,MANUAL则需手动触发备份
  • USER_DBBACKUP/GROUP_DBBACKUP:文件读写权限控制,默认使用UID/GID 10000(用户/组名为dbbackup
  • DEBUG_MODE:设为TRUE可开启详细日志输出,便于故障排查

路径与资源优化

  • LOG_PATH:日志存储路径,默认/logs
  • TEMP_PATH:备份临时工作目录,默认/tmp/backups/
  • BACKUP_JOB_CONCURRENCY:并发备份任务数,默认1(根据服务器配置调整)

二、备份策略配置:时间与存储管理

调度参数设置

  • DEFAULT_BACKUP_INTERVAL:备份间隔(分钟),默认1440(24小时)
  • DEFAULT_BACKUP_BEGIN:首次备份时间,支持四种格式:
    • 绝对时间:2330(晚上11:30)
    • 相对时间:+10(容器启动后10分钟)
    • 完整时间戳:2023-12-21 23:30:00
    • Cron表达式:30 23 * * *(每天23:30,此时忽略INTERVAL参数)

⚠️ 注意:若时间以0开头(如0430),建议用引号包裹避免解析错误

备份保留策略

  • DEFAULT_CLEANUP_TIME:自动删除旧备份(分钟),默认FALSE(不自动删除)
  • DEFAULT_ARCHIVE_TIME:文件归档时间阈值(分钟),超过后移动到归档目录

三、数据处理配置:压缩与加密安全

压缩优化选项

参数 说明 默认值
DEFAULT_COMPRESSION 压缩算法:GZ/BZ/XZ/ZSTD/NONE ZSTD
DEFAULT_COMPRESSION_LEVEL 压缩等级(1-9,ZSTD支持1-19) 3
DEFAULT_ENABLE_PARALLEL_COMPRESSION 启用多线程压缩 TRUE

加密保护设置

  • DEFAULT_ENCRYPT:启用GPG加密,默认FALSE
  • 加密方式二选一
    • DEFAULT_ENCRYPT_PASSPHRASE:密码加密(推荐使用_FILE后缀从文件读取)
    • DEFAULT_ENCRYPT_PUBLIC_KEY/DEFAULT_ENCRYPT_PRIVATE_KEY:密钥对加密

四、数据库连接配置:多类型支持

MySQL/MariaDB专项配置

  • DEFAULT_PORT:数据库端口,默认3306
  • DEFAULT_MYSQL_CLIENT:客户端选择,mariadb(默认)或mysql
  • 事务与性能
    • DEFAULT_MYSQL_SINGLE_TRANSACTION:单事务备份(默认TRUE
    • DEFAULT_MYSQL_MAX_ALLOWED_PACKET:数据包大小限制,默认512M

PostgreSQL专项配置

  • DEFAULT_PORT:默认5432
  • DEFAULT_BACKUP_GLOBALS:是否备份全局数据
  • 扩展参数DEFAULT_EXTRA_BACKUP_OPTS可添加自定义备份参数

五、存储位置配置:本地与云存储

文件系统存储

  • DEFAULT_FILESYSTEM_PATH:本地备份目录,默认/backup
  • DEFAULT_CREATE_LATEST_SYMLINK:创建最新备份符号链接,默认TRUE
  • 权限控制:DEFAULT_FILESYSTEM_PERMISSION默认600(仅所有者可读写)

S3兼容存储

需设置DEFAULT_BACKUP_LOCATION=S3,核心参数:

  • DEFAULT_S3_BUCKET:存储桶名称
  • DEFAULT_S3_REGION:区域设置(如ap-northeast-2
  • DEFAULT_S3_HOST:自定义S3服务地址(如MinIO)

六、高级功能:脚本钩子与监控

自定义脚本执行

  • 前置脚本:放置.sh文件到/assets/scripts/pre/目录
  • 后置脚本:放置.sh文件到/assets/scripts/post/目录
  • 示例脚本路径:examples/post-script.sh

监控集成

项目提供Zabbix监控模板:zabbix_templates/db_backup.json,可导入Zabbix监控备份状态。

七、最佳实践总结

  1. 安全配置

    • 敏感信息(如密码)使用_FILE后缀从文件读取
    • 启用加密保护敏感数据
  2. 性能优化

    • ZSTD压缩算法平衡速度与压缩率
    • 根据CPU核心数调整DEFAULT_PARALLEL_COMPRESSION_THREADS
  3. 可靠性保障

    • 设置合理的CLEANUP_TIME避免磁盘占满
    • 配置POST_SCRIPT实现备份完成通知

通过合理配置这些环境变量,tiredofit/docker-db-backup可以成为Docker环境下数据库备份的可靠解决方案,满足从简单到复杂的备份需求。

要开始使用,可通过以下命令克隆项目:

git clone https://gitcode.com/gh_mirrors/do/docker-db-backup

【免费下载链接】docker-db-backup tiredofit/docker-db-backup: 是一个用于备份 MySQL 和 PostgreSQL 数据库的 Docker 容器,它使用 Tar 命令备份数据库数据,并可以将备份数据加密。适合用于在 Docker 环境下备份 MySQL 和 PostgreSQL 数据库,特别是对于需要自动化备份和加密数据库数据的场景。特点是 Docker 容器、支持 MySQL 和 PostgreSQL、备份和加密数据库数据。 【免费下载链接】docker-db-backup 项目地址: https://gitcode.com/gh_mirrors/do/docker-db-backup

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐