字节笔记本

2026年2月22日

Databasus:开源数据库备份工具,支持 PostgreSQL/MySQL/MongoDB

Databasus(原 Postgresus)是一款免费开源的数据库备份工具,专注于 PostgreSQL、MySQL 和 MongoDB 的自动化备份。它支持多种存储后端(S3、Google Drive、FTP 等)和多种通知渠道(Slack、Discord、Telegram 等),帮助开发者和运维团队轻松实现数据库的定时备份与恢复。

项目简介

Databasus 是一个自托管的数据库备份解决方案,由 RostislavDugin 开发维护。截至目前,该项目在 GitHub 上已获得 5.6k+ stars,拥有 292 个 Fork 和 21 位贡献者。项目采用 Apache 2.0 许可证开源,主要使用 Go 语言(70.8%)TypeScript(26.8%) 编写。

该项目原名 Postgresus,后更名为 Databasus 以反映其对多种数据库的支持。它提供了直观的 Web 界面,支持暗黑/亮色主题,并且适配移动端,让管理员可以随时随地监控备份状态。

核心特性

支持的数据库

  • 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%

保留策略

  • 时间周期: 按固定时长保留(如 7 天、3 个月、1 年)
  • 数量限制: 保留最近 N 个备份(如最近 30 个)
  • GFS 策略: 分层保留——独立保留每小时、每天、每周、每月和每年的备份
  • 大小限制: 设置单个备份和总存储容量上限

多种存储后端

  • 本地存储: 保存在 VPS/服务器本地
  • 云存储: S3、Cloudflare R2、Google Drive、NAS、Dropbox、SFTP、Rclone 等
  • 安全可靠: 所有数据完全由用户掌控

智能通知

  • 多渠道支持: Email、Telegram、Slack、Discord、Webhooks
  • 实时更新: 成功和失败都会发送通知
  • 团队集成: 完美适配 DevOps 工作流

企业级安全

  • AES-256-GCM 加密: 企业级备份文件加密保护
  • 零信任存储: 备份文件加密后即使存储在共享存储(如 S3)中也对攻击者无用
  • 密钥加密: 敏感数据加密存储,日志和错误信息中不会暴露
  • 只读用户: 默认使用只读用户进行备份,不存储任何可修改数据的内容

团队协作

  • 工作空间: 按项目或团队分组管理数据库、通知和存储
  • 访问控制: 基于角色的权限管理,控制谁可以查看或管理特定数据库
  • 审计日志: 跟踪所有系统活动和用户变更
  • 用户角色: 支持 viewer、member、admin、owner 等角色

技术栈

  • 后端: Go (70.8%)
  • 前端: TypeScript (26.8%)
  • 部署: Docker、Docker Compose、Kubernetes (Helm)
  • 数据库: SQLite(元数据存储)
  • 许可证: Apache 2.0

安装指南

Databasus 提供四种安装方式:

方式一:自动化安装脚本(推荐,仅 Linux)

bash
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh \
  | sudo bash

脚本会自动安装 Docker 和 Docker Compose(如未安装),配置 Databasus,并设置开机自启。

方式二:Docker 快速运行

bash
docker run -d \
  --name databasus \
  -p 4005:4005 \
  -v ./databasus-data:/databasus-data \
  --restart unless-stopped \
  databasus/databasus:latest

方式三:Docker Compose

创建 docker-compose.yml:

yaml
services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    ports:
      - "4005:4005"
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped

然后运行:

bash
docker compose up -d

方式四:Kubernetes + Helm

开发/测试环境(ClusterIP + port-forward):

bash
helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace

kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# 访问 http://localhost:4005

云环境(LoadBalancer):

bash
helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set service.type=LoadBalancer

域名访问(Ingress):

bash
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

快速开始

  1. 访问 Dashboard: 打开 http://localhost:4005
  2. 添加数据库: 点击 "New Database" 并按向导配置
  3. 配置调度: 选择每小时、每天、每周、每月或 Cron 表达式
  4. 设置连接: 输入数据库凭据和连接信息
  5. 选择存储: 选择备份存储位置(本地、S3、Google Drive 等)
  6. 配置保留策略: 选择时间周期、数量限制或 GFS 策略
  7. 添加通知(可选): 配置 Email、Telegram、Slack 或 Webhook
  8. 保存并启动: Databasus 会验证设置并开始备份计划

常用操作

重置密码

bash
docker exec -it databasus ./main \
  --new-password="YourNewSecurePassword123" \
  --email="admin@example.com"

备份 Databasus 本身

建议定期备份 Databasus 的加密密钥,以便在服务器损坏时仍能恢复加密备份:

bash
# 复制加密密钥(仅需 30 秒)
docker cp databasus:/databasus-data/secrets ./databasus-backup/

项目链接

总结

Databasus 是一款功能完善、安全可靠的开源数据库备份工具。它支持多种数据库类型、灵活的调度策略、多种存储后端和企业级加密,同时提供直观的 Web 界面和完善的团队协作功能。对于需要自托管备份方案的中小团队和个人开发者来说,Databasus 是一个值得考虑的选择。

分享: