• Aumentar tamanho da fonte
  • Tamanho da fonte padrão
  • Diminuir tamanho da fonte

MySQL - Backup e restore

Criando script-shell para backupear sua base de dados mysql

Vou criar um script para executar o backup colocando-o no diretório /usr/local/bin. Crie um arquivo vazio com o comando touch

touch /usr/local/bin/bkpmysql

E de permissão de execusão para o mesmo usando o comando chmod:

chmod +x /usr/local/bin/bkpmysql

Crie um diretorio onde serão armazenados seus backups para deixar os backups mais organizados e de facil acesso eu guardo todos os meus backups em uma pasta no diretorio / mas você pode usar qualquer diretório que preferir.

Com o comando mkdir -p crie o diretorio bkp e dentro dele crie um sub-diretório mysql

mkdir -p /bkp/mysql/

Abra seu editor de texto preferido: gedit, kedit, vim, mcedit, etc... e crie um arquivo com o script a seguir:

#!/bin/sh
#
# Não esqueça de editar as variáveis de configuração
#
# A variavel abaixo pega a data atual do sistema, quando o scritpt
# for executado ele irá definir a data atual como nome do arquivo,
# desta forma fica mais fácil identificar o backup atual
DATA=$(/bin/date +%Y%m%d)

# Esta outra variavel guarda o nome de sua base de dados assim
# o script sabera de qual base de dados ele irá fazer o backup
DATABASE="sua base de dados"

#Esta variável guarda o caminho onde o backup será armazenado...
CAMINHO="/bkp/mysql"

# Esta variável é que dá nome ao arquivo de backup nome
# da base de dados junto com a data atual.
# Nome da base de dados
NOME="$DATABASE-$DATA.sql"

# VARIÁVEIS DE CONFIGURAÇÃO DO MYSQL
# Indique o host onde devemos nos conectar para realizar o backup
HOST="localhost"

# Indique o usuário que tem privilégios para este tipo de
# procedimento na base. Geralmente é o root.
USER="seu_usuario_no_mysql"
# SENHA DE CONEXÃO COM A BASE DE DADOS
PASSWORD="sua senha"
# FIM DAS VARIVEIS DE CONFIGURAÇÃO

# Entra no diretório onde o backup será gravado
cd $CAMINHO

# Este comando limpa backups antigos. Se você quiser mantê-los, basta comentar esta linha
# Obs: se sua base de dados tiver muitos registros, isso pode gerar um consumo grande de hd
# Limpando backup antigo
echo " Limpando backups antigos "
rm -rf $CAMINHO/*

# O comando abaixo roda um dump do mysql, este comando já está incluído
# em sua instalação. Você pode obter mais informações na documentação oficial
# no site do mysql.
echo " aguarde backup esta sendo executado ................"
mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE > $NOME
if [ $? -eq 0 ]; then
echo " Beleza! O backup foi concluido com sucesso!!!"
else
echo "Erro ao executar o backup do MySQL"
echo "Verifique o problema e tente novamente!"
exit 1
fi

# Estamos usando o comando tar -jcf para compactar o backup em .tar.bz2
# Compactando seu backup."
echo "Aguarde enquanto backup esta sendo compactado"
tar -jcf ${DATABASE}-${DATA}.tar.bz2 ${DATABASE}-${DATA}.sql
echo " Backup foi compactado com Sucesso"

# FIM DO SCRIPT

Você pode colocar este arquivo bkpmysql no diretorio /usr/local/bin assim você pode executá-lo rodando o comando bkpmysql.

Pra facilitar a vida vamos criar no crontab uma rotina de backup

Para visualizar o que ja esta agendado no Cron digite crontab -l

Rode o comando crontab -e para alterar o cron. Edite a linha como mostra o exemplo a seguir

#min   hor   ddm   mes   dds   comando
00 05 * * * /usr/local/bin/bkpmysql

No exemplo acima estou dizendo ao cron que ele execute o backup da base de dados todos os dias ás 5:00 da matina
mais caso tenha alguma dúvida. Você pode encontrar um bom artigo sobre o cron no link abaixo
Artigo sobre o cron

 

Restaurando um base do MySQL

Para restaurar os backups em sua base de dados entre no diretório onde esta o backup, descompacte o arquivo rodando o comando

$ tar -xvfj arquivo.tar.bz2

depois rode o comando de restauração da base de dados

mysql -h localhost -ueder -pminhasenha < arquivobackup.sql

Bom é isso espero ter ajudado no script que a
Dúvidas sugestões e correções mande email Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
Documentação do mysqldump