pg_hardstorage 采用渐进式迁移方案,避免重写备份仓库:新仓库与现有环境并行,先全量备份并持续捕获 WAL,验证恢复后切换,旧仓库保留至保留期结束;兼容层使原有命令和定时任务继续生成原生备份,团队可自行选择切换时机。项目为 Apache 2.0 开源,代码托管于 GitHub。
pg_hardstorage 通过 libpq 复制连接(BASE_BACKUP 与 START_REPLICATION SLOT)备份 PostgreSQL,无需 archive_command、SSH 或共享文件系统,兼容 RDS、Aurora 等托管服务。它用复制槽做流控,ACK 持久化的 WAL,槽延迟即背压信号,可接入现有监控。支持主备双槽并发写入 CAS 去重存储,并跟随 Patroni 切换,代价是需管理复制槽。
pg_hardstorage 采用内容寻址存储,按 SHA-256 引用数据块,不依赖链式增量备份,因此任一备份损坏或删除旧备份均不影响其他备份。实测 487 GiB 数据去重率 87.5%,存储从 89.2 TiB 降至 12.4 TiB。代价是备份时需读取完整数据目录,快照加速功能尚未发布。
本文是 pg_hardstorage 的存储与恢复指南,面向 PostgreSQL 管理员、DBA 和 SRE,介绍备份数据在系统中的流转过程,包括基础备份与 WAL 捕获、数据入库、分块、清单与元数据组织,以及恢复时重建数据库的方法,并讨论内容寻址存储、去重、完整性校验、损坏处理、崩溃安全、垃圾回收和恢复流程等设计决策。
pg_hardstorage 是用于自建 PostgreSQL 物理备份的开源项目,支持去重、加密和 PITR,采用 Apache 2.0 许可,要求 PG 15+。文档存在矛盾:一处称 RDS、Aurora、Cloud SQL、Azure、Neon、Supabase 等托管服务不开放 BASE_BACKUP 而无法使用,另一处却称支持托管 PG。官网超时,子域名可访问。
完成下面两步后,将自动完成登录并继续当前操作。