tiredofit/docker-db-backup终极配置:环境变量详解与最佳实践
tiredofit/docker-db-backup是一个强大的Docker容器,专为备份MySQL和PostgreSQL数据库设计,支持Tar命令备份和数据加密功能。本文将详细解析其核心环境变量配置与最佳实践,帮助新手用户快速实现Docker环境下的数据库自动化备份。## 一、容器基础配置:启动前必知参数### 运行模式与权限控制- **`MODE`**:设置备份模式,`AUTO`(默
·
tiredofit/docker-db-backup终极配置:环境变量详解与最佳实践
tiredofit/docker-db-backup是一个强大的Docker容器,专为备份MySQL和PostgreSQL数据库设计,支持Tar命令备份和数据加密功能。本文将详细解析其核心环境变量配置与最佳实践,帮助新手用户快速实现Docker环境下的数据库自动化备份。
一、容器基础配置:启动前必知参数
运行模式与权限控制
MODE:设置备份模式,AUTO(默认)启用内置调度,MANUAL则需手动触发备份USER_DBBACKUP/GROUP_DBBACKUP:文件读写权限控制,默认使用UID/GID10000(用户/组名为dbbackup)DEBUG_MODE:设为TRUE可开启详细日志输出,便于故障排查
路径与资源优化
LOG_PATH:日志存储路径,默认/logsTEMP_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:数据库端口,默认3306DEFAULT_MYSQL_CLIENT:客户端选择,mariadb(默认)或mysql- 事务与性能:
DEFAULT_MYSQL_SINGLE_TRANSACTION:单事务备份(默认TRUE)DEFAULT_MYSQL_MAX_ALLOWED_PACKET:数据包大小限制,默认512M
PostgreSQL专项配置
DEFAULT_PORT:默认5432DEFAULT_BACKUP_GLOBALS:是否备份全局数据- 扩展参数:
DEFAULT_EXTRA_BACKUP_OPTS可添加自定义备份参数
五、存储位置配置:本地与云存储
文件系统存储
DEFAULT_FILESYSTEM_PATH:本地备份目录,默认/backupDEFAULT_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监控备份状态。
七、最佳实践总结
-
安全配置:
- 敏感信息(如密码)使用
_FILE后缀从文件读取 - 启用加密保护敏感数据
- 敏感信息(如密码)使用
-
性能优化:
- ZSTD压缩算法平衡速度与压缩率
- 根据CPU核心数调整
DEFAULT_PARALLEL_COMPRESSION_THREADS
-
可靠性保障:
- 设置合理的
CLEANUP_TIME避免磁盘占满 - 配置
POST_SCRIPT实现备份完成通知
- 设置合理的
通过合理配置这些环境变量,tiredofit/docker-db-backup可以成为Docker环境下数据库备份的可靠解决方案,满足从简单到复杂的备份需求。
要开始使用,可通过以下命令克隆项目:
git clone https://gitcode.com/gh_mirrors/do/docker-db-backup
更多推荐
所有评论(0)