Agent HTTPS
- 数据库主机需要
- 能通过出站 HTTPS 访问 DumpCat
- 数据库
- 无需改动,即使只监听 127.0.0.1
- 安装
sudo ./install.sh --agent --server … --key …- 适合
- 不想改动网络和 MySQL 配置的场景
有人在 14:37:12 误删了 orders 表。拖动标记选择恢复点:DumpCat 会挑选最新的基础备份,以及需要重放的 binlog 文件。PostgreSQL 同理,使用的是归档的 WAL。
安装
Linux 上只需一条命令,Windows 上下载后双击即可。安装程序会注册一个开机自启的服务,并安装与你的数据库版本匹配的备份工具;Web 界面已打包在同一个文件里。
在 Linux 服务器上粘贴这条命令并按回车:
curl -fsSL https://dumpcat.cc/install.sh | sudo sh
它会下载最新版本、核对校验和,并以 systemd 服务的形式安装到 /opt/dumpcat,同时安装 rclone、MySQL/MariaDB 客户端、对应版本的 mariabackup 或 XtraBackup,软件源里有 mydumper 时也会一并安装;--postgres 16 会额外安装 PostgreSQL 16 客户端工具。选项写在 sh -s -- 之后:--port 9090、--listen 127.0.0.1、--tls-auto。
支持 Windows 10 / 11 或 Windows Server 2016+ 64 位,以 Windows 服务运行。更习惯 PowerShell?在 PowerShell(管理员)中运行 irm https://dumpcat.cc/install.ps1 | iex。Windows 版不提供 MySQL 的 mydumper 和 XtraBackup;数百 GB 的数据库请在 Linux 上运行 DumpCat。
刚接触命令行?按照分步指南操作(英文),里面还有常见问题的解决方法。
http://<server-ip>:6369使用安装程序打印的一次性初始化令牌创建管理员账号(再次显示:dumpcat setup-token)。端口 6369 拼出 MEOW
在手机九宫格键盘上按 6-3-6-9,对应的字母正好拼出 MEOW(喵)。这就是 Web 界面的默认端口。
备份方式
对于 MySQL 和 MariaDB,DumpCat 可调用 mysqldump、mydumper 以及 XtraBackup / MariaBackup。添加服务器时,Test connection 会显示版本、datadir、每个数据库的大小,以及这台机器上可用的备份方式。
| mysqldump逻辑备份 | mydumper逻辑备份,并行 | XtraBackup / MariaBackup物理备份,热备 | |
|---|---|---|---|
| 会锁库吗? | InnoDB 不锁,靠的是 --single-transaction | 为同步各线程加几毫秒全局锁,之后不再加锁 | 不锁 InnoDB;结束时有极短暂的备份锁 |
| 备份速度 | 每个数据库 1 个线程,多个数据库并行 | 多线程,表按行分块 | 最快:多线程复制文件 |
| 恢复速度 | 最慢 | 快:并行,加载完成后再建索引 | 非常快:复制文件 + prepare |
| 增量备份 | 不支持 | 不支持 | 支持 |
| 单库恢复、改名 | 支持 | 支持 | 不支持,只能恢复整个实例 |
| 最适合 | 20–50 GB 以下的数据库 | 需要逐个恢复的大型数据库 | 100 GB 到数 TB,要求低 RTO |
PostgreSQL 10 及以上:pg_dump 按数据库备份,表并行导出和恢复,可恢复为新名称或恢复到另一台服务器;pg_basebackup 通过复制连接备份整个集群,配合持续 WAL 归档,可恢复到某个时间、某个还原点或某个 WAL 位置。
存储
可以先写入本地磁盘再上传,也可以不占用临时磁盘、直接流式上传到云端。每个存储各自设定保留份数,例如本地保留 3 份备份,S3 上保留 30 天。
<storage>/
shop-nightly/
20261018-020000-full/
manifest.json # sha256, binlog, GTID
shop.sql.zst.age
crm.sql.zst.age
_users.sql.zst.age # users & grants
binlog/20261018/
mysql-bin.000123.zst.age
运行 DumpCat 的机器没了?重新装一份,再次添加存储,点击 Import backup catalog:所有备份都会重新列出来。即使没有 DumpCat,也能用 age、zstd 加上 mysql 或 pg_restore 完成恢复。
网络连接
当备份服务器无法直接连上数据库时(比如有防火墙、NAT,或数据库只监听 127.0.0.1),可以反过来让数据库主机主动连接 DumpCat。有两种方式,都不需要在数据库主机上开放端口。备份、恢复和时间点恢复都与直连时完全一样。
sudo ./install.sh --agent --server … --key …dumpcat.conf,执行 systemctl enable --now wg-quick@dumpcat连接由数据库主机发起,数据在连接内双向传输。物理备份(XtraBackup / MariaBackup)可以通过以 --allow-physical 启动的 Agent 进行;走 WireGuard 时,仍需在数据库主机上安装 DumpCat。
运维
全部内置于 DumpCat,在 Web 界面中开启和调整。
Dump completed 这一行。dumpcat update 会校验 SHA-256、备份配置、等待正在运行的备份完成,失败时自动回滚。AI 友好
DumpCat 内置 MCP 服务器,并提供 Markdown 格式的 API 参考文档。Claude Code、Claude Desktop 和其他 AI Agent 用 API 令牌接入后,可以查询哪些备份失败了、读取日志并解释原因;使用完全权限的令牌,还能运行备份、校验和恢复演练。
/api/mcp 是 DumpCat 的一部分,无需额外安装:提供概览、告警、任务、备份、日志、恢复、演练以及时间点恢复预览等工具。通过 stdio 启动本地服务器的客户端可使用 dumpcat mcp。/api/docs.md 由服务器自动生成:包括认证方式、约定、curl 示例,以及每个路由所需的角色和令牌。可以直接粘贴到 AI 对话中,也可以让 Agent 读取后调用 REST API。claude mcp add --transport http dumpcat \
https://backup.example.com/api/mcp \
--header "Authorization: Bearer mv_…"
然后直接用大白话提问:“昨晚哪些备份失败了?为什么?”、“shop-nightly 有 24 小时内的备份吗?”、“能把 orders 恢复到昨天 14:37 吗?”
对比
选择一个工具,逐项对比所有功能。关于其他产品的信息,在完整对比页面上均注明了来源和日期。
| DumpCat | SQL | |
|---|---|---|
| Every feature free | YesNo paid tier | PartlyFree: 2 DBs, basic featuresPartlyFree: 1 job, daily, 1 GBYesPartly1 server, 2 DBs; S3/AES paidYesYesNoEnterprise subscriptionPartlyFree: 1 job, daily, 500 MBNoPaid licence or subscriptionNoFrom $14/mo; 14-day trialYes |
| Runs on your own servers | YesOne binary | YesWindows onlyNoVendor SaaS (agent optional)YesDocker or HelmPartlyAgent here, dashboard in cloudYesYesYesNoVendor SaaS (SSH or agent)YesDesktop appNoVendor SaaS over SSHYesDocker Compose |
| Linux | Yesamd64, arm64 | PartlyRemote full backups onlyYesOver SSH or agentYesDocker or HelmYesAgentYesYesYesYesOver SSH or agentYesYesOver SSHYesDocker Compose |
| Hot physical backups | YesXtraBackup, MariaBackup | NoNo physical backupsPartlyOwn XtraBackup script, PlusNoPostgreSQL onlyNomysqldump + binlogs onlyNoLogical dumps only (mysqldump)YesYesNoLogical dumps only (mysqldump)NoLogical, client-side onlyNoLogical dumps only (mysqldump)NoLogical dumps only (mysqldump) |
| Point-in-time recovery | YesTo the second or a GTID | PartlyChosen-time restore undocumentedPartlyReplay not documentedNoPostgreSQL onlyYesNoDumps only, no binlogsPartlyManual; binlogs not archivedPartlyManual mysqlbinlog replayPartlyBinlogs; replay not documentedNoNo binlog backupsPartlyBinlogs kept; manual replayPartlyVultr managed DBs only |
| Encryption | Yesage, before upload | $Paid planProfessional editionYesAES-256 with your RSA keyYesAES-256-GCM$Paid planProfessional planYesOpenSSL (not in Debian pkg)YesAES-256 (--encrypt)YesAES-256$Paid planPaid plans (tier unclear)?Not documentedNot documented?Not documentedFile encryption not describedYes |
| Data skips the vendor | YesServer to your storage | YesPartlyNot with serverless workersYesYesBypasses sqlbak.comYesStays on the serverYesYesPartlyNot with serverless backupsYesStays on your computerPartlyNot for remote backupsYes |
| Automatic backup check | YesEvery run, plus drills | PartlyVia scheduled restore jobsPartlySize and presence checksYesReal restore; needs agentPartlyVia automatic restore tasksNoNot in the script?Not documentedNot documentedPartlyManual validate command?Not documentedNot documented?Not documentedNot documented?Not documentedNot documentedPartlyExit code, size, upload checks |
开源
DumpCat 以 Apache-2.0 许可证发布。无需注册账号,无需许可证密钥,也没有把功能藏起来的付费版:本页介绍的一切,都包含在你下载的版本里。
latest.json 以提示新版本,而且可以在设置(Settings)中关闭。git clone https://github.com/theweakestharrison/DumpCat.git
cd DumpCat
go build -o dumpcat ./cmd/dumpcat
欢迎提交 Bug 报告、Pull Request 和翻译,详见 CONTRIBUTING.md。安全问题请按 SECURITY.md 中的说明私下报告。
下载
下载好了?打开压缩包里的 START-HERE.txt,或按照分步安装指南(英文)操作。
单文件二进制
旧版本仍可在 downloads.dumpcat.cc/<version>/ 下载。
更新内容
An API & MCP page to connect AI assistants and scripts, the API reference in Markdown, single sign-on with OpenID Connect, an instance name and logo, and installed instances kept out of search engines.
发布说明为英文。