备份策略
本地备份、MinIO、S3 等不同备份仓库的配置与选择。
Pigsty 支持多种备份仓库类型,可根据可靠性需求、成本预算和恢复时间要求选择合适的策略。
仓库类型
本地仓库(Local)
备份存储在主库节点的本地磁盘上。
pgbackrest_method: local
pgbackrest_repo:
local:
path: /pg/backup
retention_full_type: count
retention_full: 2
优点:
- 配置简单,无需额外基础设施
- 恢复速度快(本地 IO)
- 无网络依赖
缺点:
- 主库节点故障时备份可能丢失
- 占用主库磁盘空间
- 不支持异地容灾
适用场景:开发测试、单节点部署、对 RPO 要求不高的场景
MinIO 仓库
备份存储在 MinIO 对象存储集群上。
pgbackrest_method: minio
pgbackrest_repo:
minio:
type: s3
s3_endpoint: sss.pigsty
s3_bucket: pgsql
s3_key: pgbackrest
s3_key_secret: S3User.Backup
s3_uri_style: path
retention_full_type: time
retention_full: 14
优点:
- 备份与数据库物理隔离
- 支持多副本,高可靠性
- 支持加密存储
- 可扩展存储容量
缺点:
- 需要部署 MinIO 集群
- 恢复速度受网络带宽限制
适用场景:生产环境、需要异地容灾的场景
云对象存储(S3/GCS/Azure)
备份存储在云厂商的对象存储服务上。
pgbackrest_method: s3
pgbackrest_repo:
s3:
type: s3
s3_endpoint: s3.amazonaws.com
s3_bucket: my-pg-backup
s3_key: AKIAXXXXXXXX
s3_key_secret: xxxxxxxxxxxx
s3_region: us-east-1
retention_full_type: time
retention_full: 30
优点:
- 无需自建存储基础设施
- 跨地域复制,高可靠性
- 按使用量付费
缺点:
- 产生存储和流量费用
- 依赖互联网连接
- 恢复时可能产生较高流量费
适用场景:云上部署、需要异地容灾但不想自建存储
保留策略
按数量保留
保留最近 N 个全量备份:
retention_full_type: count
retention_full: 2 # 保留 2 个全量备份
按时间保留
保留最近 N 天内的备份:
retention_full_type: time
retention_full: 14 # 保留 14 天内的备份
差异/增量保留
retention_diff: 7 # 保留 7 个差异备份
retention_incr: 14 # 保留 14 个增量备份
备份调度
默认调度
Pigsty 默认不设置自动备份调度,需要手动配置。
配置定时备份
通过 node_crontab 配置定时任务:
node_crontab:
# 每天凌晨 1 点执行全量备份
- '00 01 * * * postgres /pg/bin/pg-backup full'
# 每 4 小时执行差异备份
- '00 */4 * * * postgres /pg/bin/pg-backup diff'
推荐策略
| 数据量 | 全量备份 | 差异备份 | 说明 |
|---|---|---|---|
| < 100GB | 每天 1 次 | - | 小库直接全量 |
| 100GB ~ 1TB | 每周 1 次 | 每天 1 次 | 平衡恢复时间和空间 |
| > 1TB | 每周 1 次 | 每天 1 次 + 增量 | 大库需要增量备份 |
加密配置
备份加密
对于远程仓库,强烈建议启用加密:
pgbackrest_repo:
minio:
cipher_type: aes-256-cbc
cipher_pass: YourSecurePassword123!
支持的加密算法:
aes-256-cbc:AES 256 位加密(推荐)none:不加密(仅用于测试)
注意:务必安全保管加密密码,丢失后无法恢复备份!
压缩配置
pgBackRest 支持多种压缩算法:
pgbackrest_repo:
local:
compress_type: zst # 压缩算法
compress_level: 3 # 压缩级别 (1-9)
| 算法 | 特点 |
|---|---|
zst(默认) |
高压缩率,快速,推荐使用 |
lz4 |
极快速,压缩率一般 |
gz |
传统 gzip,兼容性好 |
bz2 |
高压缩率,速度较慢 |
块级增量备份
pgBackRest 2.x 支持块级增量备份,显著减少备份大小:
pgbackrest_repo:
minio:
block: y # 启用块级备份
bundle: y # 小文件合并
优势:
- 只备份实际变更的数据块
- 大幅减少备份大小和传输量
- 特别适合大型数据库
多仓库配置
可以同时配置多个备份仓库:
pgbackrest_repo:
local:
path: /pg/backup
retention_full: 2
minio:
type: s3
s3_endpoint: sss.pigsty
s3_bucket: pgsql
retention_full: 14
使用场景:
- 本地仓库:快速恢复
- 远程仓库:异地容灾