Hoje é 10/11/25 - Dia da Indústria Automobilística; Dia Nacional do Trigo;


13/11/2020
Como fazer backup do servidor de banco de dados MySQL

Tipo de notícia: Desenvolvimento
Como fazer backup do servidor de banco de dados MySQL

Como fazer backup automático do MySQL (backup de triggers e stored procedures, agendamento cron, versionamento por data e limpeza de backups antigos).

Backup simples

Caso a pessoa desejasse apenas um comando que pudesse executar manualmente, sob demanda, para realização do backup, a linha abaixo realiza o backup completo do banco de dados MySQL (incluindo triggers e stored procedures). Basta substituir dbusername, dbpassword e /caminho pelas respectivas informações de usuário, senha e caminho da pasta onde será armazenado o backup.

/usr/bin/mysqldump –routines [–triggers] -u dbusername -p’dbpassword’ dbname > /caminho/backup.sql

Backup com a data de criação

Você deve ter percebido que o backup, no comando anterior, é armazenado no arquivo backup.sql. Sendo assim, a cada nova execução do comando, o backup seria sobrescrito. Caso não deseje que isso ocorra, basta alterar o nome do arquivo a cada execução.

Agora imagine que você resolve que vai deixar agendado para executar o backup todo dia. Fica inviável renomear o arquivo manualmente a cada execução, certo? Neste caso, melhor criar um nome dinâmico para o arquivo do backup.

É exatamente isso que a opção $(date +%F) faz! E mais, esta opção resulta na data no formato AAAA-MM-DD, ou seja, 4 dígitos do ano, 2 do mês e mais 2 do dia. Resultado: os arquivos ficam fáceis de ser ordenados por data, sem precisar usar a data de modificação, mas apenas ordenando por nome mesmo.

O comando abaixo, depois de ajustado como já indicamos no item 1, pode ser agendado para executar todo dia, sem risco de sobrescrever os arquivos de backups anteriores.

/usr/bin/mysqldump –routines [–triggers] -u dbusername -p’dbpassword’ dbname >/caminho/backup_DBNAME/$(date +%F)_full_DBNAME.sql

Apagar arquivos anteriores

A depender da frequência de backup do banco de dados (há empresas que precisam de vários backups por dia!), haverá uma quantidade grande de backups antigos, e neste caso pode fazer sentido apagar os mais antigos (talvez fazendo um backup em fita antes).

Para isso, o comando abaixo permite localizar e remover automaticamente, os arquivos anteriores a 7 dias, considerando a data de modificação do arquivo de backup. Caso deseje remover backups mais antigos (depois de 30 dias, por exemplo), basta alterar o valor 7 para o valor apropriado.

find /caminho/backup_DBNAME/ -type f -mtime +7 -exec rm {} +

Unir o backup por data e apagar arquivos anteriores

gora que já pensamos nas várias questões relativas à rotina de backup, que tal juntar tudo num script único backup_mysql.sh?

#!/bin/bash
/usr/bin/mysqldump –routines [–triggers] -u dbusername -p’dbpassword’ dbname >/caminho/backup_DBNAME/$(date +%F)_full_DBNAME.sql
find /caminho/backup_DBNAME/ -type f -mtime +7 -exec rm {} +

O script acima vai fazer o backup do banco, salvar o arquivo por data, e depois apagar os backups anteriores a uma semana.

Importante! Não esquecer de dar permissão de execução no script com o comando “chmod +x backup_mysql.sh”.

Utilizar o chron para agendamento

Execute o comando “crontab -e” para incluir a execução do backup no usuário desejado (root ou outro). Você será levado para um editor com um conteúdo semelhante ao abaixo:

# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)

Este conteúdo indica o formato de agendamento do cron, onde você deve informar minuto, hora, dia do mês, mês, dia da semana que o comando deve ser executado.

30 4 * * 1-6 /caminho/backup_mysql.sh

O backup será executado às 4h30min da manhã, todos os dias do mês, todos os meses, porém apenas de segunda a sábado (1-6).

Referência

https://blog.tecnologiaqueinteressa.com/2019/03/como-fazer-backup-automatico-do-mysql-backup-de-triggers-e-stored-procedures-agendamento-cron-versionamento-por-data-e-limpeza-de-backups-antigos/



Notícias

Notícias
Cursos online do Conexão Cerveja Brasil Cursos online do Conexão Cerveja Brasil
Ao longo do mês de setembro, a Associação Brasileira de Cerveja Artesanal (Abracerva) promove uma série de cursos online e gratuitos com profissionais de destaque do setor.
5º Agrofest São Gonçalo 2025 5º Agrofest São Gonçalo 2025
A comunidade rural de Poço de Pedra, em São Gonçalo do Amarante (RN), está sendo preparada para receber a maior edição da Agrofest.
Fequaju 2025 Fequaju 2025
A Prefeitura de Serra do Mel divulgou nesta terça-feira, 1º, a aguardada programação oficial do Fequaju 2025.
FINECAP 2025 FINECAP 2025
A Prefeitura de Pau dos Ferros anunciou a programação completa da FINECAP 2025.
Programação completa do Pingo da Mei Dia 2025 Programação completa do Pingo da Mei Dia 2025
Confira a programação completa do Pingo da Mei Dia 2025 por horário
Abracerva divulga as melhores cervejas do Nordeste do Brasil de 2025 Abracerva divulga as melhores cervejas do Nordeste do Brasil de 2025
Rótulos de Alagoas, Paraíba e da Bahia receberam medalhas como as melhores cervejas em etapa da 5ª Copa Cerveja Brasil.