Código aberto · Backup e restauração para MySQL, MariaDB e PostgreSQL

Backups que nunca bloqueiam o banco. Recuperação até o segundo exato.

O DumpCat é um único binário com interface web. Ele agenda backups, compacta e criptografa os arquivos, envia cópias para S3, Google Drive, OneDrive ou SFTP, verifica cada uma e traz seus dados de volta quando você precisar. Roda em Linux e Windows, totalmente offline.

MySQL 5.7 · 8.0 · 8.4  /  Percona Server  /  MariaDB 10.x · 11.x  /  PostgreSQL 10+

Recuperação point-in-time

Simulação

Alguém apagou a tabela orders às 14:37:12. Arraste o marcador para escolher um ponto de recuperação: o DumpCat escolhe o backup base mais recente e os arquivos de binlog a reaplicar. O PostgreSQL funciona do mesmo jeito, com WAL arquivado.

full · 02:00
DROP TABLE orders · 14:37:12
agora
  • Backup completo (mysqldump)
  • Binlog arquivado, no máximo 15 minutos por arquivo
  • Reaplicado na restauração
  • Incidente
Recuperar até
18/10/2026 14:37:11
Backup base
20261018-020000-fullmysqldump · consistente às 02:00:03
Reaplicar binlogs
mysql-bin.000123 → mysql-bin.00017351 arquivos, todos verificados antes de mexer em qualquer dado
Antes do incidente: orders está intacta

Instalação

Rodando em um minuto

Um comando no Linux; no Windows, baixe e dê um duplo clique. O instalador configura um serviço que inicia junto com a máquina e as ferramentas de backup compatíveis com a versão do seu banco; a interface web vem embutida num único arquivo.

No servidor Linux, cole este comando e pressione Enter:

bash
curl -fsSL https://dumpcat.cc/install.sh | sudo sh

Ele baixa a versão mais recente, confere o checksum e instala em /opt/dumpcat como serviço systemd, com rclone, o cliente MySQL/MariaDB, o mariabackup ou XtraBackup compatível e o mydumper quando os repositórios o tiverem; --postgres 16 adiciona as ferramentas cliente do PostgreSQL 16. As opções vão depois de sh -s --: --port 9090, --listen 127.0.0.1, --tls-auto.

Depois de instalar

  1. Abra http://<server-ip>:6369Crie a conta de administrador com o token de configuração de uso único que o instalador exibe (para vê-lo de novo: dumpcat setup-token).
  2. Adicione um servidor de banco de dadosO botão Test connection lista os privilégios que faltam e os métodos que você pode usar.
  3. Adicione um armazenamentoO botão Test grava, lê e apaga um arquivo.
  4. Crie um job de backupEscolha agendamento, criptografia, armazenamento e retenção, depois clique em Save & run now.

A porta 6369 faz MEOW

Digite 6-3-6-9 no teclado de um celular e você tem MEOW, o “miau” em inglês. É a porta padrão da interface web.

Métodos de backup

A ferramenta certa para cada banco e cada tamanho

Para MySQL e MariaDB, o DumpCat orquestra mysqldump, mydumper e XtraBackup / MariaBackup. Ao adicionar um servidor, Test connection mostra a versão, o datadir, o tamanho de cada banco e quais métodos funcionam naquela máquina.

mysqldumplógicomydumperlógico, paraleloXtraBackup / MariaBackupfísico, a quente
Bloqueia o banco?Não no InnoDB, graças ao --single-transactionUm bloqueio global de poucos milissegundos para sincronizar as threads, depois nenhumNenhum bloqueio no InnoDB; um bloqueio de backup muito breve no final
Velocidade do backup1 thread por banco, vários bancos em paraleloMultithread, tabelas divididas em blocos de linhasA mais rápida: cópia de arquivos multithread
Velocidade da restauraçãoA mais lentaRápida: em paralelo, índices criados após a cargaMuito rápida: cópia de arquivos + prepare
IncrementalNãoNãoSim
Restaurar um só banco, renomearSimSimNão, só a instância inteira
Ideal paraBancos com menos de 20–50 GBBancos grandes restaurados um de cada vezDe 100 GB a vários TB, RTO baixo

PostgreSQL 10 ou mais recente: pg_dump por banco, com as tabelas exportadas e restauradas em paralelo, com outro nome ou em outro servidor; pg_basebackup para o cluster inteiro por uma conexão de replicação, com arquivamento contínuo de WAL para recuperar até um horário, um ponto de restauração ou uma posição do WAL.

Armazenamento

Um job, cópias em vários lugares

Grave no disco local e depois envie, ou transmita direto para a nuvem sem disco temporário. Cada armazenamento guarda sua própria quantidade de cópias, por exemplo 3 backups no local e 30 dias no S3.

  • Local / NFSO mais rápido para restaurar; mantenha fora do disco do datadir
  • S3AWS, Cloudflare R2, MinIO, Wasabi, DigitalOcean
  • Google DriveOAuth ou uma conta de serviço
  • OneDriveSharePoint incluído
  • FTP / FTPSTLS explícito ou implícito
  • SFTPSenha ou chave privada
  • WebDAVNextcloud e companhia
  • Backblaze B2Além de Azure Blob e Dropbox
  • rcloneMais de 70 outros backends

Formatos padrão, sem amarras

<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

Perdeu a máquina que roda o DumpCat? Instale uma cópia nova, adicione o armazenamento de novo e clique em Import backup catalog: todos os backups voltam para a lista. Sem o DumpCat, você ainda consegue restaurar com age, zstd e mysql ou pg_restore.

Conectividade

Banco sem nenhuma porta aberta? Tem backup do mesmo jeito.

Quando o servidor de backup não consegue se conectar diretamente ao banco, por causa de um firewall, de NAT ou de um banco que só escuta em 127.0.0.1, deixe que o host do banco abra a conexão até o DumpCat. Há duas formas, e nenhuma abre porta no host do banco. Backups, restaurações e recuperação point-in-time funcionam como numa conexão direta.

Agente HTTPS

DumpCatServidor de backupBackup e restauraçãomysqldump · mydumper127.0.0.1:portEndpoint do agenteHTTPS · porta da UIAcessível via HTTPSHost do bancoSem porta de entradaMySQL / MariaDBInalterado · só 127.0.0.1127.0.0.1:3306dumpcat agentPermite 127.0.0.1:3306Nada aberto neste hostFirewall / NAT← HTTPS · aberta pelo host do banco3306 de entradafechada, não precisaDumpCatServidor de backupBackup e restauraçãomysqldump · mydumper127.0.0.1:portEndpoint do agenteHTTPS · porta da UIAcessível via HTTPSFirewall / NAT↑ HTTPSaberta pelo host do banco3306 de entradafechada, não precisaHost do bancoSem porta de entradadumpcat agentPermite 127.0.0.1:3306127.0.0.1:3306MySQL / MariaDBInalterado · só 127.0.0.1Nada aberto neste host
O host do banco abre o túnelO tráfego do DumpCat até o banco volta por dentro dele
O host do banco precisa de
HTTPS de saída até o DumpCat
Banco de dados
Inalterado, mesmo que só escute em 127.0.0.1
Instalação
sudo ./install.sh --agent --server … --key …
Ideal para
Não mexer na rede nem na configuração do MySQL

WireGuard integrado UDP · desativado por padrão

DumpCatServidor de backupBackup e restauraçãomysqldump · mydumper127.0.0.1:portWireGuard integrado10.66.0.1 · UDP 51820UDP 51820 abertaHost do bancoSem porta de entradaMySQL / MariaDBEscuta em 10.66.0.210.66.0.2:3306wg-quick@dumpcat10.66.0.2 · keepalive 25 sNada aberto neste hostFirewall / NAT← WireGuard UDP · aberto pelo host do banco3306 de entradafechada, não precisaDumpCatServidor de backupBackup e restauraçãomysqldump · mydumper127.0.0.1:portWireGuard integrado10.66.0.1 · UDP 51820UDP 51820 abertaFirewall / NAT↑ WireGuard UDPaberto pelo host do banco3306 de entradafechada, não precisaHost do bancoSem porta de entradawg-quick@dumpcat10.66.0.2 · keepalive 25 s10.66.0.2:3306MySQL / MariaDBEscuta em 10.66.0.2Nada aberto neste host
O host do banco abre o túnelO tráfego do DumpCat até o banco volta por dentro dele
O host do banco precisa de
WireGuard padrão, UDP 51820 de saída até o DumpCat
Banco de dados
Escuta no endereço da VPN; o usuário libera o acesso de 10.66.0.1
Instalação
Ative na página WireGuard, copie dumpcat.conf, systemctl enable --now wg-quick@dumpcat
Ideal para
Equipes que já usam WireGuard, ou um gateway para uma rede inteira de bancos

O host do banco abre a conexão; os dados trafegam nos dois sentidos dentro dela. Backups físicos (XtraBackup / MariaBackup) funcionam por um agente iniciado com --allow-physical; pelo WireGuard, eles ainda exigem o DumpCat instalado no host do banco.

Operações

Tudo aquilo que você faria com scripts caseiros

Tudo isso já vem no DumpCat e é ativado e ajustado pela interface web.

Criptografado antes do upload
O age (ChaCha20-Poly1305 + scrypt) roda no seu servidor, então o provedor de nuvem não consegue ler seus dados.
Verificação de integridade
SHA-256 para cada arquivo. A verificação relê, descriptografa, descompacta e procura a linha Dump completed.
Retenção GFS
Mantenha N backups, N dias, o último de cada dia, semana e mês. Cadeias incrementais só são apagadas junto com o seu backup completo.
Restaurações cuidadosas
Cada arquivo passa por um teste de descriptografia antes de qualquer banco ser apagado. Restaure com novos nomes, ou em outro servidor e outra versão (MySQL 8 ↔ MariaDB, PostgreSQL 15 → 16).
Contas e papéis
admin, operator, viewer. Dois fatores com TOTP, tokens de API, log de auditoria e bloqueio após repetidas falhas de login.
Notificações
E-mail, Telegram, Slack, Discord e webhooks assinados com HMAC, em caso de falha ou de sucesso.
Bancos atrás de firewall
Um agente no host do banco se conecta ao DumpCat por HTTPS, ou o host entra no WireGuard integrado. Nenhuma porta precisa ser aberta para o banco.
Autoatualização
dumpcat update confere o SHA-256, faz backup da configuração, espera os backups em andamento terminarem e reverte em caso de falha.

Pronto para IA

Pronto para IA: deixe seu assistente de IA de olho nos backups

O DumpCat traz um servidor MCP e uma referência da API escrita em Markdown. Claude Code, Claude Desktop e outros agentes de IA se conectam com um token de API para perguntar quais backups falharam, ler os logs e explicar o motivo; com um token de acesso total, também podem executar backups, verificações e testes de restauração.

Servidor MCP integrado
O endpoint /api/mcp faz parte do DumpCat, não há mais nada para instalar: ferramentas para a visão geral, alertas, jobs, backups, logs, restaurações, testes de restauração e prévias de recuperação point-in-time. Clientes que iniciam um servidor local via stdio usam dumpcat mcp.
Seguro por padrão
Tokens novos só têm acesso de leitura. Restaurações, exclusões, credenciais e configurações nunca passam pelo MCP; as respostas omitem senhas, chaves e tokens, e tudo o que um assistente inicia fica registrado no log de auditoria.
Referência da API em Markdown
/api/docs.md é gerado pelo próprio servidor: autenticação, convenções, exemplos com curl e cada rota com o papel e o token que ela exige. Cole num chat de IA, ou deixe um agente ler e chamar a API REST.
Pronto em um minuto
A página API & MCP do DumpCat cria o token, entrega o comando do Claude Code e a configuração para o Claude Desktop e outros clientes, e tem um botão Test para conferir a conexão.

Conecte o Claude Code

bash
claude mcp add --transport http dumpcat \
  https://backup.example.com/api/mcp \
  --header "Authorization: Bearer mv_…"

Depois é só perguntar com suas palavras: “Quais backups falharam ontem à noite, e por quê?”, “O shop-nightly tem algum backup com menos de 24 horas?”, “Consigo recuperar a tabela orders para as 14:37 de ontem?”

Comparativo

O DumpCat comparado às outras ferramentas

Escolha uma ferramenta para ver todos os recursos lado a lado. As informações sobre outros produtos têm fonte e data nas páginas completas de comparação.

DumpCatSQLBackupAndFTP
Every feature freeYesNo paid tierPartlyFree: 2 DBs, basic features
Runs on your own serversYesOne binaryYesWindows only
LinuxYesamd64, arm64PartlyRemote full backups only
Hot physical backupsYesXtraBackup, MariaBackupNoNo physical backups
Point-in-time recoveryYesTo the second or a GTIDPartlyChosen-time restore undocumented
EncryptionYesage, before uploadPaid planProfessional edition
Data skips the vendorYesServer to your storageYes
Automatic backup checkYesEvery run, plus drillsPartlyVia scheduled restore jobs

Código aberto

Grátis, de código aberto, e seus dados continuam seus

O DumpCat é distribuído sob a licença Apache-2.0. Sem conta, sem chave de licença, sem edição paga segurando recursos: tudo o que está nesta página vem na versão que você baixa.

Licença Apache-2.0
Use em casa ou no trabalho, modifique e redistribua. O texto completo está em LICENSE.
Sem telemetria
O DumpCat não envia dados de uso para lugar nenhum. A única chamada que ele faz por conta própria é ler o latest.json uma vez por dia para avisar sobre novas versões, e você pode desligar isso nas configurações.
Sem intermediários
Backups, senhas de banco e chaves de criptografia só trafegam do seu servidor para o armazenamento que você escolher.
Versões assinadas
Cada atualização é assinada com ed25519 e conferida com SHA-256 antes de ser instalada. Para compilar você mesmo, basta ter Go.

Compilar a partir do código-fonte

bash
git clone https://github.com/theweakestharrison/DumpCat.git
cd DumpCat
go build -o dumpcat ./cmd/dumpcat

Relatos de bugs, pull requests e traduções são bem-vindos, veja CONTRIBUTING.md. Informe problemas de segurança em privado, conforme descrito em SECURITY.md.

Download

Última versão