Databasus vs Barman
Databasus 和 Barman 都以最小化 RTO 和 RPO 的灾难恢复为目标,都支持物理备份、WAL 归档和按时间点恢复(PITR)。Databasus 基于 PostgreSQL 17 的原生工具栈远程执行这些备份,复用 PostgreSQL 自带的、久经考验的工具而不是重新造轮子。这一切都在直观的 Web 界面里管理,还提供团队功能和多种数据库引擎的支持。它适用于任何规模和复杂度的数据库。物理备份要求 PostgreSQL 17 及以上版本;在更早的版本上只能使用逻辑 pg_dump 备份。Barman(Backup and Recovery Manager)自带备份引擎,因此能在旧得多的 PostgreSQL 版本上做物理备份,还提供一些高级功能,比如基于 rsync 的增量备份、流复制集成,以及 Barman 到 Barman 的异地冗余。
快速对比
下面是 Databasus 与 Barman 主要差异的速览:
| 功能 | Databasus | Barman |
|---|---|---|
| 目标用户 | 个人、团队、DBA、企业 | DBA、企业 |
| 其他数据库支持 | ✅ PostgreSQL、MySQL、MariaDB、MongoDB | ❌ 仅 PostgreSQL |
| 界面 | Web 界面 | 仅命令行 |
| 备份类型 | 逻辑 + 物理 | 物理(文件级) |
| 物理备份所需 PostgreSQL 版本 | 17+(原生) | 9.x+(自带引擎) |
| 恢复选项 | ✅ PITR | ✅ PITR |
| 增量备份 | ✅ 块级(PG 17+) | 基于 rsync 的增量 |
| 远程备份 | ✅ 支持 | ❌ 不支持(需要文件系统访问) |
| 多服务器管理 | 按数据库调度 | 集中式备份服务器 |
| 团队功能 | ✅ 工作区、RBAC、审计日志 | ❌ 仅操作系统级权限 |
| 通知 | ✅ Slack、Teams、Telegram、邮件 | ❌ 需要自写脚本 |
| 学习曲线 | 很低 | 要求 DBA 专业知识 |
| 安装 | 一行脚本或 Docker | 需要手动配置 |
| 备份管理 | ✅ 支持 | ❌ 不支持 |
| 适合自托管数据库 | ✅ 适合 | ✅ 适合 |
| 适合云数据库 | ✅ 适合(RDS、Cloud SQL、Azure) | ❌ 不适合(需要文件系统访问) |
目标用户
两款工具最重要的差异在于它们为谁而设计:
Databasus 的用户
Databasus 面向广泛的用户群体,从个人开发者到大型企业:
- 个人开发者:安装简单、界面直观,无需深入了解 PostgreSQL 也能保护个人项目。
- 开发团队:工作区、基于角色的访问控制和审计日志让团队成员安全协作。
- 企业:完善的安全机制、多种存储目标和通知渠道,可满足企业级需求。
- DBA 和灾难恢复:物理备份、WAL 归档和 PITR,为要求数据近零丢失的关键系统服务。
Barman 的用户
Barman 专为管理企业级 PostgreSQL 基础设施的数据库管理员(DBA)而设计:
- 企业 DBA:需要用一台专门的备份服务器集中管理多台 PostgreSQL 服务器备份的专业人员。
- 需要 rsync 增量备份的团队:文件级差异对比可以缩短大型集群的备份时间、降低网络占用。
- 异地冗余需求:通过 Barman 到 Barman 的复制实现跨数据中心的地理冗余。
备份方式
两款工具采用截然不同的备份策略,各有优势:
Databasus:逻辑 + 物理备份
Databasus 同时支持逻辑和物理两种备份策略:
- 物理备份、增量备份和 WAL 备份:通过 PostgreSQL 复制协议远程执行,基于 PostgreSQL 17 的原生工具栈:
pg_basebackup、由服务端 WAL 摘要驱动的块级pg_basebackup --incremental、pg_receivewal和pg_combinebackup。Databasus 复用 PostgreSQL 自带的、久经考验的工具,而不是重新造轮子。要求 PostgreSQL 17 及以上版本。 - 逻辑备份:使用
pg_dump生成可移植的备份,能恢复到不同的 PostgreSQL 版本。这也是 PostgreSQL 17 以下版本唯一可用的备份类型,以及 MySQL、MariaDB 和 MongoDB 的备份途径。 - 数据库上无需安装任何东西:备份通过远程连接完成;封闭网络可以通过 SSH 隧道连接到内部主机或跳板机,数据库无需暴露到公网。
- 高效压缩:逻辑和物理备份都使用 zstd(级别 5)压缩。
- 只读访问:逻辑备份只需要 SELECT 权限,最大限度降低安全风险。
Barman:物理备份
Barman 对 PostgreSQL 数据目录执行文件级(物理)备份:
- 整集群备份:使用 rsync 或 pg_basebackup 在文件系统层面捕获整个数据库集群。
- WAL 归档:持续归档预写日志(WAL),支持按时间点恢复。
- 基于 rsync 的增量:用 rsync 只传输发生变化的文件,缩短备份时间、降低网络占用。
- 流复制集成:可以通过流复制协议接收 WAL 文件,实现实时归档。
恢复选项
两款工具都提供灵活的恢复选项,但粒度不同:
Databasus 的恢复
- 按时间点恢复:通过 WAL 回放恢复到任意指定的一秒。
- 整集群恢复:从物理备份将整个数据库集群恢复到指定时间点。
- 逻辑恢复:从定时逻辑备份恢复到任意一个备份点。
- 一键恢复:直接在 Web 界面下载并恢复逻辑备份。
- 跨版本兼容:逻辑备份可以恢复到不同的 PostgreSQL 版本。
Barman 的恢复
- 按时间点恢复(PITR):通过 WAL 回放恢复到任意指定的一秒,最大限度减少数据丢失。
- 整集群恢复:将整个数据库集群恢复到指定时间点。
- 远程恢复:通过 SSH 将数据库恢复到远程服务器。
- 创建备用节点:从备份创建 PostgreSQL 副本,用于高可用架构。
注意: 两款工具都支持 PITR。Barman 额外提供从备份创建备用节点,以及基于 SSH 的远程恢复到其他服务器的能力,这对高可用架构很有价值。 了解 Databasus 如何支持 PITR →
易用性
两款工具在用户体验上的取向差别极大:
Databasus 的使用体验
- Web 界面:所有备份设置都可以点选配置,不需要命令行。
- 2 分钟安装:一行 cURL 脚本或一条简单的 Docker 命令,立即上手。
- 可视化监控:仪表盘一目了然地展示备份状态、健康检查和历史记录。
- 内置通知:直接在界面里配置 Slack、Teams、Telegram、邮件或 webhook 告警。
- 无需 PostgreSQL 专业知识:为想获得可靠备份、又不想成为数据库专家的开发者而设计。
Barman 的使用体验
- 命令行界面:所有操作都通过终端命令完成,如
barman backup、barman recover。 - 配置文件:需要为每台服务器手动编辑 INI 风格的配置文件。
- WAL 归档配置:必须配置 PostgreSQL 的
archive_command或流复制设置。 - SSH 密钥管理:需要在 Barman 服务器和 PostgreSQL 服务器之间配置 SSH 密钥。
- 要求 DBA 专业知识:文档默认读者熟悉 PostgreSQL 内部机制和 WAL 原理。
团队功能
对于由多名成员共同管理备份的组织:
Databasus 的团队能力
- 工作区:按项目或团队组织数据库、通知渠道和存储。用户只能看到被邀请加入的工作区。
- 基于角色的访问控制:分配查看者、编辑者或管理员权限,控制每位成员能做什么。
- 审计日志:记录系统中的所有操作和变更,是安全合规与责任追溯的基础。
- 共享通知:团队频道自动收到备份状态更新。
Barman 的团队能力
Barman 是命令行工具,没有内置团队功能:
- 没有用户管理或访问控制
- 没有操作审计日志
- 团队协作需要借助外部工具和流程
- 访问通过操作系统级权限和 SSH 密钥控制
安全性
两款工具都提供安全功能,但思路不同:
Databasus 的安全性
- AES-256-GCM 加密:所有密码、令牌和凭据都加密存储,加密密钥与数据库分开保存。
- 每个备份独立加密:每个备份文件用主密钥、备份 ID 和随机盐派生的唯一密钥加密。
- 只读数据库访问:只需 SELECT 权限,即使被攻破也不会破坏数据。
Barman 的安全性
- 基于 SSH 的通信:Barman 服务器与 PostgreSQL 服务器之间通过 SSH 安全通信。
- 没有内置加密:Barman 不提供内置备份加密,必须借助外部工具或加密存储。
- 操作系统级安全:依赖文件系统权限和 SSH 密钥管理来控制访问。
- 校验和验证:使用校验和验证备份完整性。
存储选项
两款工具支持的存储目标不同:
Databasus 的存储
面向各种使用场景的友好选项:
- 本地存储
- Amazon S3 及 S3 兼容服务
- Google Drive
- Cloudflare R2
- Azure Blob Storage
- NAS(网络附加存储)
- Dropbox
Barman 的存储
面向企业的存储选项:
- 本地存储(POSIX 文件系统)
- Amazon S3 及 S3 兼容对象存储
- 通过 Barman 到 Barman 复制实现地理冗余
通知
随时掌握备份状态:
Databasus 的通知
内置多种通知渠道:
- Slack
- Discord
- Telegram
- Microsoft Teams
- 邮件
- Webhook
Barman 的通知
Barman 没有内置通知支持,实现通知需要:
- 围绕备份命令自写脚本
- 集成外部监控工具
- 手动解析日志并配置告警
- 接入 Nagios、Zabbix 等工具或自研方案
多服务器管理
两款工具都能管理多台 PostgreSQL 服务器的备份,但方式不同:
Databasus 的方式
- 按数据库调度:每个数据库可以有自己的备份计划和存储目标。
- 工作区组织:把相关的数据库归入同一个工作区,便于管理。
- 统一仪表盘:在同一个 Web 界面查看所有数据库备份及其状态。
Barman 的方式
- 集中式备份服务器:由一台专门的 Barman 服务器管理多个 PostgreSQL 实例的备份。
- 每台服务器单独配置:每台 PostgreSQL 服务器都需要在 Barman 服务器上有自己的配置文件。
- 异地冗余:Barman 服务器可以复制到其他 Barman 服务器,实现地理冗余。
结论
在 PostgreSQL 备份生态中,Databasus 和 Barman 满足的是不同的需求。如何选择取决于你的恢复要求、团队结构和技术水平。
选择 Databasus,如果:
- 你是个人开发者、团队或企业,想要一个直观的备份方案
- 相比命令行工具,你更喜欢 Web 界面
- 你需要团队协作功能(工作区、RBAC、审计日志)
- 你想要内置的 Slack、Teams、Telegram 等通知
- 你想在一个带调度、通知和团队功能的仪表盘里管理多个数据库的备份
- 你想快速上手,不需要太多 PostgreSQL 知识
- 内置备份加密对你很重要
- 你使用云托管数据库(AWS RDS、Google Cloud SQL、Azure)或自托管 PostgreSQL
选择 Barman,如果:
- 你需要在 PostgreSQL 17 以下版本上做物理或增量备份(Barman 自带备份引擎)
- 你需要基于 rsync 的增量备份(文件级差异对比)来缩短传输时间
- 你需要流复制集成来实时归档 WAL
- 你需要 Barman 到 Barman 的地理冗余
- 你需要从备份创建备用节点来搭建高可用架构
- 你熟悉命令行工具和 PostgreSQL 内部机制
- 你的组织有专职的 DBA
两款工具都支持物理备份、WAL 归档和 PITR,都以最小化 RTO 和 RPO 的灾难恢复为目标。Databasus 适用于任何规模和复杂度的数据库,并提供 Web 界面、团队功能,以及覆盖自托管和云托管数据库的逻辑与物理备份。当你需要基于 rsync 的增量备份、流复制集成、Barman 到 Barman 的异地冗余,或从备份创建备用节点时,Barman 更合适。