想象一下:你手头有 PostgreSQL、MySQL 和 MongoDB 三套数据库,分别在本地、AWS RDS 和 Docker 容器中运行。你希望它们都能在凌晨 4 点自动备份,备份文件同时加密保存到本地、S3 和 Google Drive,备份完成后通过 Slack 通知团队,并且支持点对点恢复。这听起来像是一个需要多个脚本拼凑的复杂工程?Databasus 用一个优雅的 Web 界面,把这一切统一到了同一个平台上。
一、引言:从“野生脚本”到统一平台
在传统的数据备份场景中,许多团队依然依赖手工编写的 pg_dump 脚本和零散的 cron 任务。这种“野生”模式往往伴随着“备份失败无人知”、“存储空间莫名爆满”等隐患,更别提跨团队协作时的权限混乱与审计缺失。回顾过去,我们或许都写过一堆定制化的备份脚本,用 cron 定时执行,再通过 scp 或 rsync 传到另一台服务器。这套方案初期能用,但随着数据库版本更新、存储地点增加以及团队协作需求的涌现,那些脚本就变成了难以维护的“祖传代码”。
Databasus(曾用名 Postgresus)正是一款终结这种混乱的开源工具。它提供一个带有精美 Web UI 的中央控制台,让你能像管理云服务一样,优雅地管理所有备份任务。
二、核心特性全景
1、一图看懂 Databasus 整体架构
Databasus 的核心是一个 Go 语言编写的高效后端,配合简洁的 Web 前端,通过一系列模块协同完成备份任务。
2、四款主流备份工具功能对比
在选择备份工具时,你需要权衡功能全面性、团队协作支持和使用体验。以下是四款主流开源工具的横向对比:
数据来源:PostgreSQL backup tools、2026年顶级开源Postgres备份解决方案
3、支持的数据库与版本
Databasus 对多种数据库的主流版本提供了广泛支持:
这意味着无论你的技术栈如何多样,都可以在同一个平台上集中管理所有备份任务。
4、核心特性速览
数据来源:databasus、Databasus:一款好用的开源数据库备份管理工具-腾讯云开发者社区
5、Web 界面演示
部署完成后,访问 http://localhost:4005 即可看到一个现代化的管理界面。从创建数据库连接到配置备份策略、查看备份历史、执行恢复操作,整个过程都可以通过点击完成,首次配置一个数据库的备份只需不到 5 分钟。
三、技术原理深度:Databasus 如何优雅工作
1、三种备份类型详解
Databasus 支持三种备份方式,它们在工作原理、性能和应用场景上有着本质差异:
2、Agent 工作机制
对于物理备份和增量备份,Databasus 引入了一个小巧的 Agent,它用 Go 语言编写,轻量高效。它的特别之处在于反向连接模式:
关键设计:
3、WAL 流式增量备份原理
增量备份的能力建立在 PostgreSQL 的 WAL(预写日志)机制之上。WAL 是 PostgreSQL 中保证数据持久性和崩溃恢复的核心技术。其工作流程可以概括为:
这个持续归档的机制允许 Databasus 在任意时间点回放 WAL 日志,实现 PITR(Point-in-Time Recovery),恢复到过去任意一秒的状态。
4、备份文件的加密与解密流程
Databasus 通过标准的 openssl 和 zstd 命令行工具来完成解密和解压,使得恢复过程完全不依赖 Databasus 本身。
四、实战:30 分钟搭建完整备份系统
1、安装部署(最快仅需 1 分钟)
推荐使用 Docker Compose 部署方式。
1)选项 1:一键脚本(仅限 Linux)
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash
该脚本会自动安装 Docker、创建 docker-compose.yml 并启动服务。
2)选项 2:Docker 命令(最快上手)
docker run -d \
--name databasus \
-p 4005:4005 \
-v ./databasus-data:/databasus-data \
--restart unless-stopped \
databasus/databasus:latest
这条命令将:
安装完成后,通过浏览器访问 http://localhost:4005 即可进入 Web 界面。
3)选项 3:Kubernetes Helm
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace
kubectl port-forward svc/databasus-service 4005:4005 -n databasus
2、首次配置步骤
访问 http://localhost:4005,首次访问需设置管理员密码,然后创建工作区(Workspace)。工作区可以按项目或团队进行隔离。
导航到“Storages” → “Add Storage”,选择存储类型(S3、Google Drive、本地等)。根据所选类型填写对应的凭证信息,并进行连接测试。强烈建议测试通过后再保存。
导航到“Databases” → “Add Database”,填写连接信息(主机、端口、用户名、密码、数据库名)。Databasus 默认使用只读用户进行备份,会在添加过程中提示创建只读账号,以遵循最小权限安全原则。选择存储后端、配置保留策略(如保留最近 7 天),以及选择通知渠道(Slack、Telegram、Email 或 Webhook)。
选择备份频率(小时/日/周/月或自定义 Cron 表达式),例如 0 4 * * * 表示每天凌晨 4 点执行。保存配置后,系统将按设定自动执行备份任务,并在仪表盘中记录完整的历史。
五、备份与恢复详解
1、备份文件的存储结构与解密
Databasus 生成的备份文件遵循“公开”标准:首先用 pg_dump(或其他原生工具)导出数据库内容,再用 zstd 压缩(压缩率可达 4-8 倍),最后用 AES-256-GCM 加密。这种结构确保了备份的“可移植性”。
解密与恢复只需三行命令(以 PostgreSQL 为例):
# 1. 解密
openssl enc -d -aes-256-gcm -pbkdf2 -iter 100000 \
-in backup.enc -out backup.zst -K (cat backup.iv)
# 2. 解压
zstd -d backup.zst -o backup.dump
# 3. 恢复
pg_restore -d new_database_name -U postgres backup.dump
完整恢复指南:https://databasus.com/how-to-recover-without-databasus[reference:18]
2、三种备份方式的差异详解
六、对比总结
在备份工具的选择上,需要根据团队规模和实际需求做出权衡:
七、优势与不足
1、核心优势
2、局限性
八、一句话总结
Databasus 并不是一个单纯的备份工具,而是一套“数据库备份即服务”体系。它通过 Web UI + 多数据库兼容 + 丰富的存储后端与通知渠道的组合设计,让不同规模的团队都能用统一的方式管理数据安全。单条 Docker 命令即可启动,开发者和 DBA 都能在 5 分钟内完成配置,实现生产级自动化备份。
作者丨Java架构之路
来源丨公众号:k8s-Mango(ID:gh_2b3387d56f8f)
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn