Backup e disaster recovery no MySQL e MariaDB
Como montar backup e recuperação de desastre no MySQL e MariaDB: tipos de backup, recuperação pontual, RPO, RTO e testes.

Backup é como seguro de carro: você paga todo mês esperando nunca usar. A diferença é que, no banco de dados, muita gente descobre no dia do acidente que a apólice nunca foi válida. Vamos garantir que o seu MySQL ou MariaDB não entre nessa estatística.
Resumo rápido: Como montar backup e recuperação de desastre no MySQL e MariaDB: tipos de backup, recuperação pontual, RPO, RTO e testes.
Série MySQL e MariaDB na prática: comandos válidos para MySQL 8.x e MariaDB 10.6+/11.x, com as diferenças indicadas quando existem.
Duas perguntas antes de qualquer ferramenta
- RPO (Recovery Point Objective): quanto dado posso perder? 24 horas? 5 minutos? Zero?
- RTO (Recovery Time Objective): quanto tempo posso ficar fora do ar?
As respostas definem a estratégia, e o custo.
Lógico versus físico
| Lógico (dump) | Físico (cópia de arquivos) | |
|---|---|---|
| Ferramentas | mysqldump, mariadb-dump, mydumper | mariadb-backup (MariaDB), Percona XtraBackup (MySQL) |
| Velocidade de restore | Lenta em bases grandes | Rápida |
| Portabilidade | Alta (entre versões) | Mesma versão principal |
| Ideal para | Bases pequenas, migrações, uma tabela | Bases grandes, DR |
Atenção: o XtraBackup não é compatível com versões recentes do MariaDB. No MariaDB, use o mariadb-backup.
Na prática
# Lógico, consistente para InnoDB, sem travar
mysqldump --single-transaction --routines --triggers --events --all-databases | gzip > full.sql.gz
# Físico no MariaDB
mariadb-backup --backup --target-dir=/backup/full --user=backup --password=***
mariadb-backup --prepare --target-dir=/backup/full
# Físico no MySQL
xtrabackup --backup --target-dir=/backup/full
xtrabackup --prepare --target-dir=/backup/full
Point-in-time recovery com binlog
dom 02:00 backup full ──── binlogs ────▶ qua 15:42 DROP TABLE acidental
restaura o full + aplica binlogs até 15:41:59 = perda quase zero
mysqlbinlog --stop-datetime="2026-10-21 15:41:59" binlog.000123 binlog.000124 | mysql
# no MariaDB, o utilitário também se chama mariadb-binlog
Para isso, o binlog precisa estar ligado e os arquivos copiados para fora do servidor com frequência.
Disaster recovery: além do backup
- Réplica em outro local (outra zona ou região) para RTO de minutos.
- Galera ou Group Replication para alta disponibilidade, que não substitui backup: um DROP TABLE é replicado em milissegundos para todos os nós.
- Regra 3-2-1: 3 cópias, 2 mídias diferentes, 1 fora do site (e, de preferência, imutável contra ransomware).
- Criptografia dos backups e controle de quem acessa.
O passo que ninguém faz: testar
mensal: restaurar o último backup em servidor isolado
├─ subiu sem erro?
├─ contagem de linhas confere?
├─ aplicação conecta e funciona?
└─ quanto tempo levou? (esse é o seu RTO real)
Documente o procedimento em um runbook que qualquer pessoa do time consiga seguir às 3 da manhã. Esse é um dos itens centrais de um assessment.
A série completa: MySQL e MariaDB na prática
- MySQL e MariaDB lentos? 12 causas comuns (e como resolver)
- Como fazer um health check completo no MySQL e MariaDB
- MySQL e MariaDB travando? Entenda locks e deadlocks
- Como otimizar o InnoDB buffer pool no MySQL e MariaDB
- Como encontrar queries lentas no MySQL e MariaDB
- Índices no MySQL e MariaDB: quando criar e quando remover
- Consultoria MySQL e MariaDB: quando vale a pena contratar um DBA especializado?
- DBA remoto para MySQL e MariaDB: como funciona?
- Assessment MySQL e MariaDB: o que é avaliado?
- Backup e disaster recovery no MySQL e MariaDB
Precisa de ajuda especializada?
Se o seu ambiente MySQL ou MariaDB precisa de diagnóstico, otimização, backup confiável ou acompanhamento contínuo, conheça a HTI Tecnologia, especialista em bancos de dados.
Ainda decidindo entre os dois? Leia MySQL ou MariaDB: qual é o melhor? e o guia definitivo de MySQL.
Quer dominar a base que os dois compartilham?
MariaDB nasceu do MySQL, e tudo o que é fundamento (modelagem, índices, transações, replicação, otimização) vale para os dois. É isso que eu ensino no livro Aprendendo MySQL: Prática, Teoria, Laboratórios, Desafios e Projetos: 292 páginas, 10 laboratórios guiados, 277 exercícios e 4 desafios com gabarito, e uma máquina virtual pronta para você quebrar (e consertar) à vontade.
Conheça o livro e leia a degustação gratuita.
Bora trocar ideia?
Se este artigo te ajudou (ou te fez discordar, que também vale), me siga no LinkedIn e no Instagram. Lá eu posto bastidores de banco de dados, história da computação e histórias de produção que ninguém conta em curso oficial.
Sobre o autor: Alexandre Almeida atua com bancos de dados há mais de 25 anos, foi instrutor oficial de MySQL e Oracle para mais de 1.000 alunos e escreveu Aprendendo MySQL: Prática, Teoria e Laboratórios.
Fontes: MySQL 8.4 Reference Manual (Oracle), MariaDB Server Documentation (MariaDB Knowledge Base), documentação do Percona Toolkit e do Percona XtraBackup. Imagem de capa: ilustração gerada por IA (prateleiras com fitas e discos de backup em um cofre com luz de emergência vermelha).