Script de backup MySQL [melhorado]
Na postagem anterior compartilhei um script que utilizada para backup de uma das minha base de dados, porém resolvi dar uma melhorada nele, pois tive alguns problemas com o restaure de backup gerados por aquele script. Tentei deixar o script mais dinâmico e com melhores combinações de parâmetros. Basicamente o script gera um arquivo .sql com combinações de INSERTs para que tanto o backup quanto o restaure fique mais rápido e o backup é feito com consistência para que não haja problemas posteriormente.
Obs.: para que o script funcione na parte da compactação bz2 é necessário instalar o pacote bzip2.
Obs.: para que o script funcione na parte da compactação bz2 é necessário instalar o pacote bzip2.
Descrição
Na postagem anterior compartilhei um script que utilizada para backup de uma das minha base de dados, porém resolvi dar uma melhorada nele, pois tive alguns problemas com o restaure de backup gerados por aquele script. Tentei deixar o script mais dinâmico e com melhores combinações de parâmetros. Basicamente o script gera um arquivo .sql com combinações de INSERTs para que tanto o backup quanto o restaure fique mais rápido e o backup é feito com consistência para que não haja problemas posteriormente.
Obs.: para que o script funcione na parte da compactação bz2 é necessário instalar o pacote bzip2.
Obs.: para que o script funcione na parte da compactação bz2 é necessário instalar o pacote bzip2.
Versões atualizadas deste script
#!/bin/bash #################### SCRIPT PARA BACKUP MYSQL #################### # Jeferson R. Costa <rc.jeferson@gmail.com> # # Created Feb, 2013 # # Update Feb, 2013 # # Definindo parametros do MySQL echo " -- Definindo parametros do MySQL ..." DB_NAME='dbname' DB_USER='dbuser' DB_PASS='dbpass' DB_PARAM='--add-drop-table --add-locks --extended-insert --single-transaction -quick' # Definindo parametros do sistema echo " -- Definindo parametros do sistema ..." DATE=`date +%Y-%m-%d` MYSQLDUMP=/usr/bin/mysqldump BACKUP_DIR=/backup/mysql BACKUP_NAME=mysql-$DATE.sql BACKUP_TAR=mysql-$DATE.tar #Gerando arquivo sql echo " -- Gerando Backup da base de dados $DB_NAME em $BACKUP_DIR/$BACKUP_NAME ..." $MYSQLDUMP $DB_NAME $DB_PARAM -u $DB_USER -p$DB_PASS > $BACKUP_DIR/$BACKUP_NAME # Compactando arquivo em tar echo " -- Compactando arquivo em tar ..." tar -cf $BACKUP_DIR/$BACKUP_TAR -C $BACKUP_DIR $BACKUP_NAME # Compactando arquivo em bzip2 echo " -- Compactando arquivo em bzip2 ..." bzip2 $BACKUP_DIR/$BACKUP_TAR # Excluindo arquivos desnecessarios echo " -- Excluindo arquivos desnecessarios ..." rm -rf $BACKUP_DIR/$BACKUP_NAME
Ao fazer o tar, vc pode incluir o parâmetro "j" que ja cria o tar com bzip2, isso exclui a necessidade de rodar o comando "bzip2" posteriormente.
Também pode inserir ao final do comando o parâmetro "--remove-files", que exclui os arquivos de origem e torna desnecessário o comando "rm -rf" posteriormente.
A linha ficaria assim: tar -cjf $BACKUP_DIR/$BACKUP_TAR -C $BACKUP_DIR $BACKUP_NAME --remove-files
Dúvidas consultar manual do tar com o comando "$man tar".
O restante do script está show!!!!
Abraço
Raphael Riscado