备份恢复

配置备份策略与备份仓库,管理备份,执行时间点恢复:pgBackRest 引擎与 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 原语手工执行恢复

快速上手

  1. 设计备份策略:用 pg_crontab 声明定时备份计划,用 pgbackrest_repo 选择备份仓库
  2. 管理备份:用 pg-backup 手动备份,用 pb info 查看备份状态
  3. 执行恢复:用 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 善后。