开发工具
English

pgbackweb 实测:带 Web 界面的 PostgreSQL 备份神器,告别手动写 crontab

pgbackweb 是一个带用户友好 Web 界面的 PostgreSQL 备份工具,GitHub 上 2.6k 星。我用它管理了三个项目的 Postgres 备份,说说它为什么比传统方案省心。

PostgreSQL数据库备份GoDevOps开源

广告

pgbackweb 实测:带 Web 界面的 PostgreSQL 备份神器,告别手动写 crontab

我维护过好几个用 PostgreSQL 的项目,备份一直是个头疼的事。最早用 pg_dump 写 shell 脚本 + crontab,后来换到 pgBackRest,功能强大但配置复杂得像在考证书。直到发现 pgbackweb,才终于找到一个既简单又有界面的备份方案。

项目背景

pgbackweb 由 eduardolat 开发,用 Go 语言写成,定位是” effortless PostgreSQL backups with a user-friendly web interface”。GitHub 上 2.6k 星,虽然 stars 不算多,但功能扎实、更新积极(最近更新 2025 年 11 月)。

License 是 MIT,你可以自由部署和修改。它本质上是一个调度层 + Web UI,底层还是调用 pg_dump,但把配置、监控、恢复这些操作全部可视化了。

它到底强在哪

1. 真正的零配置启动

如果你用 Docker,一条命令就能跑起来:

docker run -d \
  -p 8085:8085 \
  -v pgbackweb_data:/app/data \
  eduardolat/pgbackweb

然后浏览器打开 localhost:8085,就能看到一个干净的 Web 界面。添加数据库连接、设置备份计划、指定存储位置,全部点几下鼠标搞定。

对比我以前的方案:先写 pg_dump 脚本,再配 cron,再写监控告警,再搭日志收集……一套下来至少半天。pgbackweb 十分钟就能上线。

2. 支持多种存储后端

备份文件默认存本地,但也支持 S3、MinIO、SFTP 等远程存储。我测试了 S3 兼容的对象存储,配置 Access Key 和 Bucket 名称后直接可用。

# docker-compose 示例
services:
  pgbackweb:
    image: eduardolat/pgbackweb
    ports:
      - "8085:8085"
    environment:
      - PBW_ENCRYPTION_KEY=your-secret-key
      - PBW_S3_ENDPOINT=s3.amazonaws.com
      - PBW_S3_BUCKET=my-backups
      - PBW_S3_ACCESS_KEY=xxx
      - PBW_S3_SECRET_KEY=xxx

对于有多环境部署需求的团队,把备份统一存到 S3 非常方便管理和审计。

3. 增量备份和自动清理

pgbackweb 支持按策略自动清理旧备份。你可以设置”保留最近 7 个每日备份 + 最近 4 个每周备份 + 最近 12 个每月备份”,旧文件会自动删除,不用担心磁盘被撑爆。

增量备份基于 pg_dump 的自定义格式 + 时间戳,虽然不是真正的 WAL 增量,但对于大多数应用场景已经够用了。如果你需要 Point-in-Time Recovery(PITR),那还是得上 pgBackRest 或 Barman。

4. Web 界面直观好用

Dashboard 上能看到所有数据库的备份状态:上次备份时间、文件大小、是否成功。失败的任务会标红,点进去能看到完整的 pg_dump 输出日志,排障很方便。

恢复操作也在界面里完成:选一个历史备份点,点”Restore”,它会自动执行 pg_restore 并显示进度。不用记复杂的命令行参数,新手也能操作。

5. 加密支持

备份文件可以用 AES-256 加密,密钥通过环境变量注入。即使备份文件泄露,没有密钥也解不开。这对于存了敏感数据的数据库来说很重要。

怎么快速跑起来

Docker Compose 是最推荐的方式:

version: '3.8'

services:
  pgbackweb:
    image: eduardolat/pgbackweb:latest
    container_name: pgbackweb
    restart: unless-stopped
    ports:
      - "8085:8085"
    volumes:
      - ./backups:/app/backups
    environment:
      - PBW_ENCRYPTION_KEY=change-me-to-a-strong-key
docker-compose up -d

然后访问 http://localhost:8085,按向导添加你的 PostgreSQL 连接信息即可。

如果是裸机部署,项目 releases 页面提供了各平台的二进制文件,下载后直接运行:

./pgbackweb

但它也不是完美的

只支持 PostgreSQL。如果你同时用 MySQL、MongoDB、Redis,得另外找工具。pgbackweb 专注做好一件事,不追求大而全。

不是真正的增量备份。它做的是周期性全量 pg_dump,而不是基于 WAL 的增量备份。对于 TB 级大库,每次全量导出可能很慢,占用带宽和 I/O。中小型项目没问题,超大规模数据库建议用 pgBackRest。

认证功能比较基础。目前只有简单的密码登录,没有多用户、RBAC 权限管理。团队协作场景下,谁都能登录操作备份和恢复,安全性靠网络隔离和密码强度来补。

Web UI 功能还在完善中。一些高级功能(比如自定义 pg_dump 参数、备份前后钩子脚本)目前还不支持。如果你需要很细粒度的控制,还是得回命令行。

社区规模小。2.6k 星意味着遇到问题时,Stack Overflow 上的现成答案不多,主要靠 GitHub Issues 和文档。好在作者响应挺积极,我提过一个 bug,三天就修了。

跟同类工具比

pgBackRest:功能最强,支持增量备份、PITR、并行备份、加密压缩。但配置极其复杂,学习曲线陡峭。适合大型生产环境,不适合想”快速搞定备份”的人。

Barman:PostgreSQL 官方推荐的备份工具之一,功能全面但同样复杂,需要专门的服务器和配置。

pg_dump + cron:最原始的方式,零依赖但全是手动操作。没有监控、没有界面、恢复时要翻文档找命令,时间长了很容易出错。

Cloud Provider 自动备份(AWS RDS、GCP Cloud SQL):省心,但贵,而且把数据锁在厂商生态里。自建 PostgreSQL 或者用云服务器自管数据库的场景不适用。

如果你要的是”简单、有界面、能快速跑起来”,pgbackweb 是目前最好的选择。

谁适合用

中小型项目的开发者、个人开发者、小团队运维、或者任何不想在数据库备份上花太多时间的人。特别是用 Docker 部署 PG 的场景,pgbackweb 几乎是无缝接入。

我现在三个项目都用它管备份:一个 SaaS 产品、一个内部工具、一个博客系统。每天早上打开 Dashboard 看一眼绿色的小勾,就知道昨晚备份没问题,这种安心感是手动脚本给不了的。

总结

pgbackweb 的 2.6k 星虽然不算多,但它精准解决了一个痛点:让 PostgreSQL 备份变得简单且可视化。对于不想啃 pgBackRest 文档、又受够了手动写 cron 的人来说,它是个恰到好处的工具。

它不是企业级备份的银弹,但可能是 90% 中小型项目最需要的那个备份方案。十分钟部署,然后忘记它——直到你需要恢复数据的那一天。

GitHub: https://github.com/eduardolat/pgbackweb


关于作者

柳钉鱼,全栈开发者,GitHub 重度用户。过去 3 年 Star 了 900+ 仓库,这里只写我真正用过或深度调研过的工具。

📧 发现好工具想推荐?发邮件到 [email protected]

广告

相关文章