Backup e Restore do MySQL/MariaDB na VPS: Guia Completo

Tempo de leitura: 3 minutos

Perder um banco de dados sem backup é um dos piores cenários pra quem administra um site ou aplicação. O MySQL e o MariaDB trazem uma ferramenta de linha de comando simples e confiável pra isso: o mysqldump. Neste guia você vai ver como fazer backup, restaurar e automatizar essa rotina na sua VPS Linux.

Se você ainda está escolhendo onde hospedar o banco, vale conhecer o Cloud VPS Brasil da Rubfy: SSD NVMe e Intel Xeon Gold, ideal pra bancos de dados que precisam de leitura e escrita rápidas.

Por que usar o mysqldump

O mysqldump exporta o banco inteiro (ou tabelas específicas) num arquivo .sql com todos os comandos necessários pra recriar a estrutura e os dados. É a ferramenta padrão, vem junto com a instalação do MySQL/MariaDB e funciona igual nos dois.

Fazendo backup de um banco

O comando básico pede o usuário, pede a senha de forma interativa e salva a saída num arquivo:

mysqldump -u usuario -p nome_do_banco > backup.sql

Pra comprimir o arquivo direto (importante em bancos grandes, economiza bastante espaço em disco):

mysqldump -u usuario -p nome_do_banco | gzip > backup-$(date +%F).sql.gz

Pra fazer backup de TODOS os bancos do servidor de uma vez:

mysqldump -u root -p --all-databases | gzip > backup-completo-$(date +%F).sql.gz

Opções que fazem diferença

  • --single-transaction: essencial em bancos InnoDB em produção, faz o backup numa transação consistente sem travar as tabelas.
  • --routines: inclui procedures e functions armazenadas, que o backup padrão não pega.
  • --triggers: inclui os triggers das tabelas.
  • --no-tablespaces: evita erro de permissão em alguns ambientes gerenciados.

Um comando de produção mais completo fica assim:

mysqldump -u usuario -p --single-transaction --routines --triggers nome_do_banco | gzip > backup.sql.gz

Restaurando um backup

Pra restaurar, primeiro crie o banco vazio (se ele ainda não existir) e depois importe o arquivo:

mysql -u usuario -p -e "CREATE DATABASE nome_do_banco;"
mysql -u usuario -p nome_do_banco < backup.sql

Se o arquivo estiver comprimido, descompacte na hora com um pipe, sem precisar salvar o .sql descompactado no disco:

gunzip < backup.sql.gz | mysql -u usuario -p nome_do_banco

Automatizando com cron

Backup manual só funciona até você esquecer de rodar. O ideal é agendar no crontab. Veja o passo a passo completo em como agendar tarefas no Linux com crontab. Um exemplo de rotina diária às 2h da manhã, guardando os backups numa pasta separada:

0 2 * * * mysqldump -u usuario -pSUASENHA --single-transaction nome_do_banco | gzip > /backup/mysql/banco-$(date +\%F).sql.gz

Guardar a senha direto no crontab não é o ideal por segurança. A alternativa mais limpa é criar um arquivo ~/.my.cnf com as credenciais e permissão restrita (chmod 600), aí o mysqldump lê sozinho sem precisar da senha na linha de comando.

Boas práticas

  • Teste a restauração de vez em quando. Um backup que nunca foi restaurado é uma suposição, não uma garantia.
  • Mantenha os backups em outro disco ou servidor, não só na mesma VPS que está sendo protegida.
  • Rotacione os arquivos antigos (mantenha os últimos 7 ou 30 dias, por exemplo) pra não lotar o disco.

Conclusão

O mysqldump resolve backup e restore de forma simples e sem depender de ferramentas externas. Combinado com compressão, uma rotina agendada no cron e uma cópia guardada fora da VPS, você tem uma proteção real contra perda de dados.

Rode isso numa VPS de verdade

Um backup rápido depende de disco rápido. O Cloud VPS Brasil da Rubfy roda com SSD NVMe, Intel Xeon Gold, tráfego ilimitado e suporte humano de verdade via WhatsApp e ticket, com preço fixo em reais, sem depender do dólar.