Portabase:自托管的数据库备份与恢复工具

发布: (2026年2月24日 GMT+8 21:43)
6 分钟阅读
原文: Dev.to

Source: Dev.to

Portabase 封面图片:一个自托管的数据库备份与恢复工具

Portabase 组织头像 Portabase 作者头像

备份是每个人都知道应该做的事,但很少有人愿意去设置。由于安全顾虑、网络复杂性以及那些假设使用者具备大量专业知识的工具,数据库备份往往被忽视,直到出现故障才被迫处理。

Portabase 是一款数据库备份与恢复工具,当前支持 PostgreSQL、MySQL、MariaDBMongoDB(Redis 即将推出)。

Portabase 采用安全至上(secure‑by‑design)架构,使用中心服务器和轻量级代理,实现边缘部署并跨多个网络运行。放心吧,你永远不需要把数据库暴露到互联网!

这些代理负责一切:它们备份你的数据、加密后并将其发送到你偏好的存储位置——整个过程无需任何技术技能。你可以通过网页界面统一管理。

着急吗?可以使用 CLI 或文档中提供的即用型 Docker Compose 设置进行快速上手。文档

Portabase 如何工作?

Portabase 的生态系统围绕三个主要组件构建:

中央服务器(管理平面)

  • 提供 用户友好的界面,作为所有备份和恢复操作的中心控制平面。
  • 用户可以 注册和管理代理,配置备份策略,查看历史备份。
  • 仪表板显示存储使用情况、保留合规性,并让团队从单一位置管理多个数据库和代理。

代理(执行平面)

  • 部署在数据库主机上的轻量级连接器,执行实际的备份和恢复操作。
  • 采用 出站拉取模式,无需在受保护的基础设施上打开入站端口,同时保持与中央服务器的安全通信。

CLI(助手)

  • 一个命令行工具,简化仪表板和代理的安装与配置。
  • 自动化环境设置、配置生成以及操作命令。

核心功能与能力

Portabase 是 基于 cron 的,并支持三种适用于逻辑备份的保留策略:

  1. 保留固定数量的备份
  2. 基于时间的保留(n 天)
  3. GFS 轮换(祖父‑父‑子)

Retention policies

这些策略适用于逻辑备份制品,并帮助执行组织的数据保留标准。

对于组织使用,Portabase 实现了 工作区结构,让您能够管理资源(数据库、存储位置和通知器)的访问和分段。这在同一实例内为团队和项目强制权限边界。

高度模块化,拥有众多集成

平台支持多种存储后端,包括:

  • 本地文件系统
  • 任意兼容 S3 的存储(AWS S3、CloudFlare R2、MinIO、RustFS 等)
  • Google Drive

Add storage channel

Portabase 旨在实现灵活性和可扩展性。您可以将每个数据库链接到 多个存储目标,从而实现冗余和弹性——即使某个存储位置出现故障,备份仍能保持安全。

通知与警报集成

Portabase 与流行的通知平台(如 Slack、DiscordTelegram)集成,使团队能够实时了解备份状态。警报可以在备份成功或失败时通知您,帮助实现主动监控并加快响应速度。

Add notification channel

这些集成帮助确保关键备份操作不被忽视,并且可以轻松将 Portabase 融入现有的团队工作流和沟通渠道。

内部实现

中心服务器使用 Next.js 16 构建,利用服务器端渲染 (SSR) 和优化的客户端水合,以提供低延迟的界面。后端使用 PostgreSQL 进行可靠的数据存储,配合 Drizzle ORM 管理数据库交互,确保类型安全的查询、事务完整性以及高效的模式迁移。

最初用 Python 编写的代理已完全重构为 Rust 🦀,利用 Tokio 的异步运行时实现高吞吐、非阻塞操作。此重写:

  • 将 Docker 镜像大小降低了
  • 最小化运行时错误
  • 保证在多个数据库之间进行可靠的并发备份和恢复操作

Rust 的内存安全性和性能保证使得该代理非常适合高 I/O 需求的生产环境。

如果你觉得 Portabase 有用,请别忘了在 GitHub 上给它点个星!

0 浏览
Back to Blog

相关文章

阅读更多 »

没人想负责的 Systemd Bug

TL;DR:存在一个命名空间 bug,影响 Ubuntu 20.04、22.04 和 24.04 服务器,导致随机服务故障。自 2021 年起已在系统中报告……