备份恢复
Pigsty 使用 pgBackRest 管理 PostgreSQL 备份 —— 这可能是 PostgreSQL 生态中最强大的开源备份工具, 支持增量备份、并行处理、加密、Silo/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 的封装映射 |
| 策略 | 设计备份策略:调度计划、恢复窗口与磁盘空间规划 |
| 仓库 | 配置备份仓库:本地、Silo、外部 S3,加密、版本控制与锁定 |
| 管理 | 备份管理命令手册:启停、手动备份、查看、清理、Stanza 管理 |
| 恢复 | 执行时间点恢复:恢复目标、分步执行、参数参考 |
| 克隆 | 用 PITR 克隆数据库集群:找回数据、恢复演练 |
| 示例 | 沙箱教程:使用 pgBackRest 原语手工执行恢复 |
Pigsty 尽最大努力提供可靠的 PITR 解决方案,但我们不对 PITR 操作导致的数据丢失承担任何责任,使用需自担风险。如需专业支持,请考虑我们的 专业服务。
执行 PITR 前必须先核对 pig pg list <目标集群> 与 pig pb info,确认近期可用备份和恢复窗口,
由操作者复述精确的目标集群与恢复点,再执行目标限定的 ./pgsql-pitr.yml -l <目标集群> ...。
pgsql-pitr.yml 只打印计划,不会暂停等待确认;生产恢复还需要维护窗口和独立验证过的备份。
快速上手
- 设计备份策略:用
pg_crontab声明定时备份计划,用pgbackrest_repo选择备份仓库 - 管理备份:用
pg-backup手动备份,用pb info查看备份状态 - 执行恢复:用
pg_pitr参数声明恢复目标,运行pgsql-pitr.yml剧本
pgBackRest 的概念体系(stanza、仓库、备份链、保留策略、时间线)与 Pigsty 封装层的参数映射:理解每条命令背后发生了什么。
设计并配置备份策略:备份频率决定恢复速度,保留策略决定恢复窗口与空间占用,两张推演图帮您做出量化决策。
配置备份存储仓库:本地磁盘、Silo 与外部 S3 对象存储,保留策略、加密、版本控制与对象锁定。
备份管理命令手册:启用与移除备份,手动备份,查看与清理,Stanza 管理,日志排查,以及替代备份工具。
执行时间点恢复:pgsql-pitr.yml 剧本、pig pitr 命令与 pig pb restore 原语,恢复目标、分步执行与完整参数参考。
用 PITR 把一个集群的历史状态恢复到另一个集群:找回误删数据、执行恢复演练,以及必不可少的 Stanza 善后。