← Voltar ao blog
MySQL 5 min de leitura

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 e disaster recovery no MySQL e MariaDB

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)
Ferramentasmysqldump, mariadb-dump, mydumpermariadb-backup (MariaDB), Percona XtraBackup (MySQL)
Velocidade de restoreLenta em bases grandesRápida
PortabilidadeAlta (entre versões)Mesma versão principal
Ideal paraBases pequenas, migrações, uma tabelaBases 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

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).