简介
项目地址:https://github.com/databasus/databasus
官网地址:https://databasus.com
文档:https://databasus.com/installation
如果你正在为混合数据库环境的备份策略犯愁,那么 Databasus 这款工具值得你花时间了解一下。它是一个免费、开源且可自托管的数据库备份工具,虽然最初专注于 PostgreSQL,但现已扩展至支持主流的关系型与非关系型数据库。它允许你将备份存储在本地或多种云存储中,并通过丰富的通知渠道随时掌握备份状态。值得一提的是,它的前身是 Postgresus。


✨ 功能特性
💾 支持的数据库
- PostgreSQL: 12, 13, 14, 15, 16, 17 和 18
- MySQL: 5.7, 8 和 9
- MariaDB: 10 和 11
- MongoDB: 4, 5, 6, 7 和 8
🔄 计划备份
- 灵活的调度: 每小时、每天、每周、每月或使用 cron 表达式
- 精确的时间安排: 在特定时间运行备份(例如,在流量较低的凌晨 4 点)
- 智能压缩: 采用均衡压缩策略,节省 4-8 倍空间(约 20% 开销)
🗄️ 多存储目的地
- 本地存储: 将备份保留在您的 VPS/服务器上
- 云存储: S3, Cloudflare R2, Google Drive, NAS, Dropbox, SFTP, Rclone 等
- 安全: 所有数据均在您的控制之下
📱 智能通知
- 多通道推送: 支持邮件、Telegram、Slack、Discord、webhook等多种通知方式
- 实时状态更新: 及时获取备份成功与失败通知
- 团队协作: 完美适配 DevOps 工作流程
🔒 企业级安全
- AES-256-GCM 加密: 为备份文件提供企业级保护
- 零信任存储: 备份文件经过加密,对攻击者毫无用处,因此您可以安全地将其存储在 S3、Azure Blob Storage 等共享存储中
- 密钥加密: 任何敏感数据都会被加密,即使在日志或错误消息中也绝不会暴露
- 只读用户: Databasus 默认使用只读用户进行备份,并且绝不存储任何可能修改您数据的内容
👥 适合团队使用
- 工作区: 为不同的项目或团队分组管理数据库、通知器和存储
- 访问管理: 通过基于角色的权限控制谁可以查看或管理特定数据库
- 审计日志: 跟踪所有系统活动及用户所做的更改
- 用户角色: 在工作区内分配查看者、成员、管理员或所有者角色
🎨 用户体验友好
- 精心设计的用户界面: 干净、直观的界面,细节考究
- 深色与浅色主题: 选择适合您工作流程的外观
- 移动端自适应: 随时随地通过任何设备查看您的备份
☁️ 兼容自托管与云数据库
Databasus 可与自托管的 PostgreSQL 和云托管数据库无缝协作:
- 云服务支持: AWS RDS、Google Cloud SQL、Azure Database for PostgreSQL
- 自托管: 任何您自行管理的 PostgreSQL 实例
- 为何不支持 PITR?: 云服务商已提供原生 PITR,且外部 PITR 备份无法恢复到托管的云数据库——这使得它们对于云托管的 PostgreSQL 不切实际
- 实用的粒度: 对于 99% 的项目而言,每小时和每日备份已足够,无需 WAL 归档带来的运维复杂性
🐳 自托管且安全
- 基于 Docker: 易于部署和管理
- 隐私优先: 您的所有数据都保留在您的基础设施上
- 开源: 采用 Apache 2.0 许可证,可检查每一行代码
📦 安装指南
你有四种方式安装 Databasus:自动化脚本(推荐)、简单的 Docker run 命令,或 Docker Compose 设置,亦或是 Kubernetes。
选项 1:自动化安装脚本(推荐,仅限 Linux)
安装脚本将执行以下操作:
- ✅ 安装 Docker 和 Docker Compose(如果尚未安装)
- ✅ 设置 Databasus
- ✅ 配置系统重启时自动启动
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh \
| sudo bash
选项 2:简单的 Docker run 命令
运行 Databasus 的最简单方式:
docker run -d \
--name databasus \
-p 4005:4005 \
-v ./databasus-data:/databasus-data \
--restart unless-stopped \
databasus/databasus:latest
此单条命令将实现:
- ✅ 启动 Databasus
- ✅ 将所有数据存储在
./databasus-data 目录中
- ✅ 系统重启时自动重新启动
选项 3:Docker Compose 设置
创建包含以下配置的 docker-compose.yml 文件:
services:
databasus:
container_name: databasus
image: databasus/databasus:latest
ports:
- "4005:4005"
volumes:
- ./databus-data:/databus-data
restart: unless-stopped
然后执行:
docker compose up -d
选项 4:使用 Helm 的 Kubernetes
对于 Kubernetes 部署,直接从 OCI 注册表安装。
使用 ClusterIP + 端口转发(开发/测试):
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace
kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# Access at http://localhost:4005
使用 LoadBalancer(云环境):
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace \
--set service.type=LoadBalancer
kubectl get svc databasus-service -n databasus
# Access at http://<EXTERNAL-IP>:4005
使用 Ingress(基于域名的访问):
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace \
--set ingress.enabled=true \
--set ingress.hosts[0].host=backup.example.com
更多选项(NodePort、TLS、用于 Gateway API 的 HTTPRoute),请参阅 Helm chart README。
🚀 使用指南
- 访问仪表板:导航至
http://localhost:4005
- 添加您的第一个数据库进行备份:点击"新建数据库"并按照设置向导操作
- 配置计划:从每小时、每天、每周、每月或 cron 间隔中选择
- 设置数据库连接:输入您的数据库凭据和连接详细信息
- 选择存储:选择备份存储位置(本地、S3、Google Drive 等)
- 添加通知(可选):配置电子邮件、Telegram、Slack 或 webhook 通知
- 保存并启动:Databasus 将验证设置并开始备份计划
🔑 重置密码 (文档)
如果你需要重置密码,可以使用内置的密码重置命令:
docker exec -it databasus ./main --new-password="YourNewSecurePassword123" --email="admin"
将 admin 替换为你需要重置密码的用户的实际电子邮件地址。
这款工具为混合 数据库 环境下的备份管理提供了一个优雅的集中式解决方案,其开源特性和对团队协作的支持,使其成为中小型团队自建备份系统的有力候选。希望这篇介绍能帮到你,更多技术工具的深度探讨,欢迎关注云栈社区。