Hoje é 14/06/25 - Dia do Solista;


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/


Produtos

Cervejeira Consul 82 L

Cervejeira Consul 82 L

Cervejeira Consul Titanium 82L Display Na Porta

Starlink 4ª Geração

Starlink 4ª Geração

Antena de Internet Starlink Via Satélite Standard Kit V4 com Roteador

DJI Mini 4K

DJI Mini 4K

Drone DJI Mini 4K controle sem tela

Chopeira Beertender

Chopeira Beertender

Chopeira Beertender Krups Heineken com Capacidade de 5 Litros Preta

Starlink Mini

Starlink Mini

Antena de internet Via Satélite Starlink Mini

Caneca Stanley

Caneca Stanley

Canaca Stanley 1.18L


Notícias

Data Título
FINECAP 2025 09/06/2025 FINECAP 2025
Programação completa do Pingo da Mei Dia 2025 05/06/2025 Programação completa do Pingo da Mei Dia 2025
Abracerva divulga as melhores cervejas do Nordeste do Brasil de 2025 19/05/2025 Abracerva divulga as melhores cervejas do Nordeste do Brasil de 2025
Pint of Science Natal 2025 19/05/2025 Pint of Science Natal 2025
Expo Seridó 2025 18/05/2025 Expo Seridó 2025
Festival Gastronômico e Cultural de Martins 2025 18/05/2025 Festival Gastronômico e Cultural de Martins 2025
São João de Gravatá 2025 05/05/2025 São João de Gravatá 2025
Festa de Santana de Caicó 2025 01/05/2025 Festa de Santana de Caicó 2025
São João Arretado de Carpina 2025 23/04/2025 São João Arretado de Carpina 2025
São João da Carvalheira 2025 12/04/2025 São João da Carvalheira 2025
Circuito Gastronômico Sabores da Serra 2025 02/04/2025 Circuito Gastronômico Sabores da Serra 2025
Mossoró Cidade Junina 2025 02/04/2025 Mossoró Cidade Junina 2025