开源数据库备份工具Databasus

简介

什么是 Databasus ?

Databasus 是一个免费、开源且可自托管的数据库备份工具(以 PostgreSQL 为主)。它支持将数据库备份到多种存储位置(S3Google DriveFTP 等),并可通过多种渠道(SlackDiscordTelegram 等)发送备份进度通知。

主要特点

  • 多数据库支持 :支持 PostgreSQL (12-18)、MySQL (5.7/8/9)、MariaDB (10-12) 和 MongoDB (4-8)
  • 灵活调度备份 :支持每小时、每天、每周、每月或自定义 cron 表达式
  • 智能压缩4-8 倍空间节省,平衡压缩比(约 20% 开销)
  • 多种存储目的地 :本地存储、S3Cloudflare R2Google DriveNASDropboxSFTPRclone
  • 多渠道通知EmailTelegramSlackDiscordwebhooks
  • 企业级安全AES-256-GCM 加密,备份文件加密存储,敏感数据加密保护
  • 团队协作:工作空间分组、访问管理、审计日志、用户角色
  • UX 友好:精心设计的界面,支持深色/浅色主题,移动端自适应
  • 备份类型 :逻辑备份、物理备份、增量备份(支持 PITR
  • 开源免费 :基于 Apache 2.0 协议开源,可免费使用和修改

应用场景

  • 个人开发者备份:开发者的本地数据库需要定期备份,防止数据丢失
  • 中小企业数据保护:企业可以将数据库备份到本地 NAS 或云存储
  • DevOps 自动化 :集成到 CI/CD 流水线,实现数据库备份自动化
  • 多数据库管理 :同时管理多个数据库(PostgreSQLMySQLMongoDB)的备份任务

Databasus 是一个功能强大的数据库备份解决方案,特别适合需要自动化备份策略的企业和个人用户。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 databasus,选择第一个 databasus/databasus,版本选择 latest

本文写作时,latest 版本对应为 v3.32.1

ghcr.io 也有同步发布

docker 文件夹中,创建一个新文件夹 databasus,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/databasus/data /databasus-data 存放配置和元数据

端口

本地端口不冲突就行,不确定的话可以用命令查一下

bash 复制代码
# 查看端口占用
netstat -tunlp | grep 4005
本地端口 容器端口
4005 4005

环境

Databasus 无需特殊环境变量即可运行,配置通过 Web 界面完成。

命令行安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
# 新建文件夹 databasus 和 子目录
mkdir -p /volume1/docker/databasus/data

# 进入 databasus 目录
cd /volume1/docker/databasus

# 运行容器
docker run -d \
  --name databasus \
  --restart=unless-stopped \
  -p 4005:4005 \
  -v $(pwd)/data:/databasus-data \
  databasus/databasus:latest

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
version: "3"

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

然后通过 SSH 登录到您的群晖,执行下面的命令:

bash 复制代码
# 新建文件夹 databasus 和 子目录
mkdir -p /volume1/docker/databasus/data

# 进入 databasus 目录
cd /volume1/docker/databasus

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:4005 就能看到注册界面

用户为 admin,只有设置密码即可

登录后的主界面

Create workspace 创建工作空间之后,才能使用

数据库备份

基本的流程就是:

  1. 添加需要备份的数据库(点击 Add database
  1. 设置存储
  1. 配置备份计划(调度周期、保留策略)
  2. 选择存储目的地(本地、S3Google Drive 等)
  3. 配置通知(可选)
  1. 保存并启动备份

重置密码

如果需要重置管理员密码,可以使用以下命令:

bash 复制代码
docker exec -it databasus ./main --new-password="YourNewSecurePassword123" --email="admin"

admin 替换为实际的管理员邮箱地址。

注意事项

  1. 启动时间 :首次启动可能需要约 2 分钟,请耐心等待
  2. 端口占用 :如果 4005 端口被占用,请更换本地端口
  3. 数据备份 :建议也备份 Databasus 本身,或至少备份加密密钥,以便从加密备份中恢复
  4. 安全建议:首次登录后请修改默认密码,使用强密码
  5. 只读用户Databasus 默认使用只读用户进行备份,不会修改您的数据

参考文档

Databasus: Database backup tool (PostgreSQL, MySQL/MariaDB and MongoDB)

地址:https://github.com/databasus/databasus
databasus/databasus - Docker Hub

地址:https://hub.docker.com/r/databasus/databasus
Databasus 官方文档

地址:https://databasus.com/installation

相关推荐
m0_640309301 小时前
如何大幅提升 Google Sheets 数据库更新脚本的执行效率
jvm·数据库·python
Greyson11 小时前
CSS如何实现单选按钮自定义样式_利用伪元素隐藏默认UI
jvm·数据库·python
2401_835956812 小时前
Go语言怎么防SQL注入_Go语言SQL注入防护教程【深入】
jvm·数据库·python
杨云龙UP2 小时前
CentOS7.9及以上环境部署TDengine TSDB-OSS实战指南:安装、配置、建库、建超级表与验证_20250418
大数据·linux·运维·数据库·centos·时序数据库·tdengine
m0_514520572 小时前
宝塔面板怎样实现数据库的多地异地自动备份_结合阿里云OSS与定时任务插件
jvm·数据库·python
北漂Zachary2 小时前
四大编程语言终极对决
java·linux·数据库
qq_334563552 小时前
golang如何优化磁盘IO性能_golang磁盘IO性能优化思路
jvm·数据库·python
Aloudata2 小时前
基于 NoETL 语义编织技术构建 AI-Ready 数据底座
数据库·人工智能·数据分析·skill·语义编织
晨旭缘2 小时前
docker compose升级版本问题:KeyError_ ‘ContainerConfig‘
docker·容器·eureka