Automatizando o processo de backup do MySQL
Dica publicada em Banco de Dados / MySQL
Automatizando o processo de backup do MySQL
Nessa dica vamos ver como realizar um backup de um banco de dados do MySQLe como automatizar este processo de backup. Vamos partir do princípio que temos um banco de dados chamado meuBanco, na máquina localhostque é acessado pelo usuário armenio com senha jujuba.
Então vamos resumir as informações de nosso exemplo:
O programa responsável pela realização de backup do MySQL é o mysqldump,que já vem distribuído junto com o banco de dados. O mysqldump gera um arquivo com comandos SQL que cria o esquema das tabelas de seu banco de dados e restauram os registros das tabelas. Vamos iniciar com um exemplo prático de como fazer um backup completo de nosso banco de dados:
$ mysqldump -h localhost -u armenio -pjujuba meuBanco > backup_meuBanco.sql
Bem simples não, no comando acima podemos perceber claramente que foi gerado um backup de nosso banco no arquivo backup_meuBanco.sql. O mysqldump possui diversas opções para realização de backup personalizado. Você pode configurá-lo para fazer cópia apenas das estruturas das tabelas, apenas os registros, escolher o tipo de sintaxe dos comandos SQL e afins. Digite "man mysqldump" para maiores informações.
Agora que aprendemos a fazer cópia de nosso banco de dados, vamos aprender a automatizar o processo de backup. Criaremos um simples script para realizaro backup e nomear as cópias nomeadas com a data atual.
Uma vez criado o script mysqlBackup.sh, vamos agendar sua execução diária no cron. Neste exemplo quero que o script seja executado todos os dias às duas da manhã. Digite:
crontab -e
E adicione a linha:
Restaurar um backup é simples, basta você acessar o shell do MySQL e colar o conteúdo do arquivo gerado. Uma das formas de se restaurar um backup é a seguinte:
mysql -h localhost -u armenio -pjujuba meuBanco < meuBanco-20020924.sql
Onde meuBanco-20020924.sql é o arquivo com os comandos SQL.
Atenciosamente,
Fábio Berbert de Paula
Então vamos resumir as informações de nosso exemplo:
- Database: meuBanco
- Host: localhost
- Username: armenio
- Password: jujuba
O programa responsável pela realização de backup do MySQL é o mysqldump,que já vem distribuído junto com o banco de dados. O mysqldump gera um arquivo com comandos SQL que cria o esquema das tabelas de seu banco de dados e restauram os registros das tabelas. Vamos iniciar com um exemplo prático de como fazer um backup completo de nosso banco de dados:
$ mysqldump -h localhost -u armenio -pjujuba meuBanco > backup_meuBanco.sql
Bem simples não, no comando acima podemos perceber claramente que foi gerado um backup de nosso banco no arquivo backup_meuBanco.sql. O mysqldump possui diversas opções para realização de backup personalizado. Você pode configurá-lo para fazer cópia apenas das estruturas das tabelas, apenas os registros, escolher o tipo de sintaxe dos comandos SQL e afins. Digite "man mysqldump" para maiores informações.
Agora que aprendemos a fazer cópia de nosso banco de dados, vamos aprender a automatizar o processo de backup. Criaremos um simples script para realizaro backup e nomear as cópias nomeadas com a data atual.
#!/bin/sh # mysqlBackup.sh DATA=`/bin/date +%Y%m%d` # NOME armazena o nome do arquivo de backup, neste casoi # o diretório é /home/fabio/backup, configure aqui o seu # diretório de backup NOME="/home/fabio/backup/meuBanco-$DATA.sql" # variáveis do MySQL HOST="localhost" USER="armenio" PASSWORD="jujuba" DATABASE="meuBanco" mysqldump -h $HOST -u $USER -p$PASSWORD > $NOME
Uma vez criado o script mysqlBackup.sh, vamos agendar sua execução diária no cron. Neste exemplo quero que o script seja executado todos os dias às duas da manhã. Digite:
crontab -e
E adicione a linha:
0 2 * * * /bin/sh /home/fabio/mysqlBackup.sh
Restaurar um backup é simples, basta você acessar o shell do MySQL e colar o conteúdo do arquivo gerado. Uma das formas de se restaurar um backup é a seguinte:
mysql -h localhost -u armenio -pjujuba meuBanco < meuBanco-20020924.sql
Onde meuBanco-20020924.sql é o arquivo com os comandos SQL.
Atenciosamente,
Fábio Berbert de Paula
Só para uma pequena correção pois deu erro... na execução...
mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE > $NOME
valeu mutcho louco...