备份机制
pgBackRest 的概念体系(stanza、仓库、备份链、保留策略、时间线)与 Pigsty 封装层的参数映射:理解每条命令背后发生了什么。
Pigsty 使用 pgBackRest 管理 PostgreSQL 备份 —— 这可能是 PostgreSQL 生态中最强大的开源备份工具, 支持增量备份、并行处理、加密、MinIO/S3 对象存储等众多特性。 每个 PGSQL 集群默认都预配置了备份与 WAL 归档,开箱即用。
本章是备份恢复的 实操手册:配置方法、管理命令、恢复操作与演练教程。 设计理念与心智模型(为什么、如何权衡)请参阅概念层文档 时间点恢复。
所有的备份恢复操作,最终都会落实为 pgBackRest 命令。Pigsty 在它之上提供了三层封装,按需选用:
| 层次 | 接口 | 形态 | 适用场景 |
|---|---|---|---|
| 集群编排 | pg_pitr 参数 + pgsql-pitr.yml 剧本 | Ansible 剧本 | 生产集群恢复:编排 HA、etcd 与多节点 |
| 实例编排 | pig pitr | 命令行工具 | 单节点恢复:在数据库节点上直接编排执行 |
| 命令原语 | pig pb / pb 别名 / pg-backup 脚本 | pgBackRest 封装 | 备份、查询、清理,以及非托管实例的裸恢复 |
| 底层引擎 | pgbackrest | 原生命令 | 一切封装的最终执行者 |
| 章节 | 内容 |
|---|---|
| 机制 | pgBackRest 核心概念(stanza / 仓库 / 保留 / 时间线)与 Pigsty 的封装映射 |
| 策略 | 设计备份策略:调度计划、恢复窗口与磁盘空间规划 |
| 仓库 | 配置备份仓库:本地、MinIO、S3,加密、版本控制与锁定 |
| 管理 | 备份管理命令手册:启停、手动备份、查看、清理、Stanza 管理 |
| 恢复 | 执行时间点恢复:恢复目标、分步执行、参数参考 |
| 克隆 | 用 PITR 克隆数据库集群:找回数据、恢复演练 |
| 示例 | 沙箱教程:使用 pgBackRest 原语手工执行恢复 |
Pigsty 尽最大努力提供可靠的 PITR 解决方案,但我们不对 PITR 操作导致的数据丢失承担任何责任,使用需自担风险。如需专业支持,请考虑我们的 专业服务。
pg_crontab 声明定时备份计划,用 pgbackrest_repo 选择备份仓库pg-backup 手动备份,用 pb info 查看备份状态pg_pitr 参数声明恢复目标,运行 pgsql-pitr.yml 剧本pg_crontab: [ '00 01 * * * /pg/bin/pg-backup full' ]
./pgsql-pitr.yml -l pg-meta -e '{"pg_pitr": { "time": "2025-07-13 10:00:00+00", "action": "promote" }}'
pgBackRest 的概念体系(stanza、仓库、备份链、保留策略、时间线)与 Pigsty 封装层的参数映射:理解每条命令背后发生了什么。
设计并配置备份策略:备份频率决定恢复速度,保留策略决定恢复窗口与空间占用,两张推演图帮您做出量化决策。
配置备份存储仓库:本地磁盘、MinIO 与 S3 对象存储,保留策略、加密、版本控制与对象锁定。
备份管理命令手册:启用与移除备份,手动备份,查看与清理,Stanza 管理,日志排查,以及替代备份工具。
执行时间点恢复:pgsql-pitr.yml 剧本、pig pitr 命令与 pig pb restore 原语,恢复目标、分步执行与完整参数参考。
用 PITR 把一个集群的历史状态恢复到另一个集群:找回误删数据、执行恢复演练,以及必不可少的 Stanza 善后。