Backup automático do mysql no ubuntu

12

Eu tenho um servidor Ubuntu com um banco de dados Mysql. Gostaria de configurar um backup automático desse banco de dados durante a noite em outro servidor (ovh, por exemplo).

Não sei qual seria a melhor ferramenta para isso. Se alguém tem alguns conselhos ...

Desde já, obrigado.

user1260928
fonte

Respostas:

29

A maneira mais fácil de automatizar essa tarefa seria a combinação de despejos do MySQL e um cronjob. Você pode encontrar muitas informações sobre este tópico neste e em outros sites da Internet, mas para fins de conclusão:

Crie um arquivo mysqldump.sh

Que conterá o comando mysql dump que agendaremos em uma tarefa cron (substitua usuário, senha e caminho para corresponder ao seu ambiente):

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz

Editar: se você deseja que o script armazene o backup em um local remoto, basta montar o dispositivo correspondente ou compartilhar e usar o caminho de montagem no script.

Teste o script

Verifique se o script possui permissões de execução:

chmod +x /path/to/mysqldump.sh

Execute o script:

sh /path/to/mysqldump.sh

E teste se está funcionando corretamente (o arquivo de backup será criado na pasta de backup especificada).

Crie e agende um novo trabalho cron

Em um prompt de comando, digite

sudo crontab -e

E adicione a seguinte linha na parte inferior do arquivo:

30 23 * * * /path/to/mysqldump.sh

Isso executará o script todos os dias às 23:30.

Estenda este script simples

Há literalmente muitas coisas que você pode fazer para melhorar esse método simples de backup:

  • Fazendo backup em outro sistema
  • Monitorar espaço em disco
  • Relatórios por email
  • ...

Portanto, não termine aqui e experimente! :-)

Use ferramentas de backup ou serviços de backup baseados em nuvem

Embora o método acima seja um dos mais fáceis e possa ser estendido para atender às suas necessidades específicas, vale ressaltar que existem outras alternativas:

  • ferramentas de backup como o AutoMySQLBackup, um aplicativo de código aberto que pode facilitar o processo de configuração de notificação por email, compactação, criptografia, rotação e tipo (por exemplo, incremental) de seus backups. Quanto ao Mai 2018, ele está disponível para o Ubuntu Server através do APT.
  • serviços de backup baseados em nuvem, como BackupBird, myRepono, Bitcan, etc., que podem ser interessantes se você gerenciar vários servidores de banco de dados e desejar gerenciar centralmente todos os seus backups.

Lembre-se de que não estou relacionado de forma alguma a nenhuma das soluções e serviços mencionados acima e os estou listando apenas para referência, portanto, use-os por sua conta e risco.

Links / referências úteis:

Cron -> https://en.wikipedia.org/wiki/Cron

MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

Eduardo López
fonte
4
Use date +%F- que seleciona automaticamente uma combinação de ano, mês e data adequados à localidade do usuário (por exemplo, eu receberei YYYY-MM-DD).
187 muru
Oh sim, muito melhor. Vou editar a resposta :-)
Eduardo López
+1 Boa resposta: exatamente o que é necessário aqui, nem mais, nem menos.
Josué
2
Se você precisar usar o sudo para sudo crontab -eexecutar esta operação (a), e não se esqueça de tornar o script executável:chmod +x /path/to/mysqldump.sh
zinon
zinon - Obrigado pelas dicas! Eu atualizei a resposta.
Eduardo López