pgSafe 是从零开始用 Go 编写的 PostgreSQL 备份工具,目标是与 pgBackRest 在常见部署场景下实现功能等价:完整与增量备份、PITR、支持 PostgreSQL 13‑18、五种存储后端(POSIX、S3、Azure Blob、GCS、SFTP)。
它遵循的核心原则:
- 只学习 pgBackRest 的规则,不复制 C 代码;
- 所有模块都封闭、公开接口最小化;
- 采用 TDD(单元、集成、端到端)保证每行代码都有意义;
- 只使用标准库与云 SDK,避免自研网络、TLS、JSON 等。
pgSafe 通过三种模式工作:
1. simple:单连接、pg_basebackup tar 流;
2. remote‑parallel:多连接读取文件,适用于无 shell 访问的主机;
3. pgSafe mode:在数据库主机上启动 worker,直接通过 OS syscalls 并行读取文件,凭证仅在内存中。
核心 invariant(如顺序、检查点、保留策略)已在 INVARIANTS.md 中列出并通过自动化测试验证。
目前处于 alpha 阶段,功能完整性与性能仍在验证中。欢迎贡献、测试与反馈。
github.com/vyruss/pgSafe
#开发者 #工具 #PostgreSQL #pgSafe #pgBackRest #Go #备份 #PITR #云存储
@DevToolboxHub

