Mandic Wiki

Como efetuar backup do MySQL

1 – Para que possamos efetuar um Backup automático diário, semanal ou mensal, vamos utilizar um script em SHELL SCRIPT, para isso crie um arquivo com o comando VIM ou um editor de sua preferência, lembrando de definir a extensão como ".sh". 

 
images/Procedimento_Externo/Cloud_Computing/Linux/Como_efetuar_backup_do_MySQL/Mysql-bkp01.png



2 – Segue o Script para se colocar no arquivo backup.sh, lembrando que esta é apenas uma sugestão de script, e você poderá personalizar para sua necessidade.

#!/bin/sh
#backup.sh
DATA=`/bin/date +%d-%m-%Y_%T`
// Cria variável com data e hora no seguinte formato dd-mm-yyyy_hh:mm:ss
NOME="/root/backup/mysql/BkpMySQL-$DATA.sql.gz" // Cria variável com caminho e nome do arquivo de onde será salvo
# variáveis do MySQL
HOST="localhost" > // Servidor MySQL
USER="root" // Usuário MySQL
PASSWORD="XXXXXXXX" // Senha MySQL
clear // Limpa a tela
echo "Iniciando Backup..."; // Exibe mensagem informando que o Backup Iniciou
date // Exibe data e hora que iniciou
echo""; // Pula uma linha
echo "Relação de Bases";
echo "=================";
mysql -u root -pLa102030 -Bse 'show databases' // Este comando exibi os Databases incluídos no Backup
echo "=================";
echo "";
mysqldump –h $HOST –u $USER -p$PASSWORD -A | gzip > $NOME // Este comando efetua o backup e já compacta para .gz, caso queira efetuar backup de uma base especifica, remova o parâmetro “-A” e informe o nome da base que deseja.
echo "Backup Finalizado com Sucesso.."; //Mensagem Informa que o Backup foi Finalizado
date // Informa data e hora que o Backup foi finalizado.
echo "";
ls $NOME // Lista o diretório exibindo o arquivo criado.
echo "";

Após finalizar os ajustes salve o arquivo pressionando ESC e em seguida digite :wq!
 


3 – Agora devemos definir permissão de execução ao nosso script.
 
images/Procedimento_Externo/Cloud_Computing/Linux/Como_efetuar_backup_do_MySQL/Mysql-bkp02.png



4 – Agora vamos criar o diretório aonde será armazenado nosso script e backup.
 
images/Procedimento_Externo/Cloud_Computing/Linux/Como_efetuar_backup_do_MySQL/Mysql-bkp03.png



5 – Para que o nosso backup rode todo os dias ou semanas, etc, devemos agendar uma tarefa para nosso script no CRONTAB, para isso vamos editar o arquivo /etc/crontab.
 
images/Procedimento_Externo/Cloud_Computing/Linux/Como_efetuar_backup_do_MySQL/Mysql-bkp04.png


6 – No final do arquivo, antes do sinal de # adicione uma nova linha, neste exemplo estamos definindo o backup para que ele rode todos os dias as 23:59, porém pode ser personalizado para data e hora deseja, seguindo esta sintaxe:
m (Minutos) h (Hora) dom (Dia do mês) mon (Mês) dow (dia da semana: 0= domingo, 1=segunda, etc)
user (usuário) command (comando completo).

Ao finalizar salve o arquivo pressionando ESC e em seguinda digite :wq!
 
images/Procedimento_Externo/Cloud_Computing/Linux/Como_efetuar_backup_do_MySQL/Mysql-bkp05.png



7 – Agora precisamos efetuar um Restart no Cron para atualizar a nova tarefa.


 
images/Procedimento_Externo/Cloud_Computing/Linux/Como_efetuar_backup_do_MySQL/Mysql-bkp06.png



Caso deseje um backup mais simples sem a utilização de um script, apenas adicione a seguinte linha ao CRONTAB:

59 23 * * * root /usr/bin/mysqldump –h <Servidor> -u <User> -p<Senha> <Nome da Base ou Parâmetro> > backup.sql

 

Voltar