sexta-feira, 20 de abril de 2012

Backup banco PostgreSQL pelo Linux


Gente, novamente venho a contribuir um pouquinho, com algum pouco conhecimento que tenho sobre Linux e PostgreSQL. Neste script(Linux), do qual dou o nome de "backup.postgres.sh", faço o backup do banco pg, levando em conta:
1º A existência da pasta para receber o arquivo(mkdir -p);
2º Uma analise, e ao mesmo tempo, a exclusão dos arquivos a mais de 3 dias(find);
3º O backup propriamente dito(pg_dump);
 Por final, o vacuum para limpar e organizar e com isto agilizar o banco para o dia seguinte(vacuum).



#Scritp responsável pela cópia do banco de dados PostgreSQL
#Autor: Marcos Andre G.A
#Data1: 02/04/2012


#1º Mensagem que mostra na tela a data e hora de início do backup.
DATA=`date +%Y%m%d`
HORA=`date +%H%M`
echo "+++ ."
echo "+++ Data/Hora do inicio da copia. "$DATA $HORA
echo "+++ ."




#2º Criando, caso não exista, "mkdir -p" a pasta para receber o banco.

mkdir -p /opt/backups/base_de_dados/


#3º Procedimento de limpeza dos backups com data a mais de 3 dias.
echo "+++ Executando limpeza das copias dos bancos de dados a mais de 3 dias"
find /opt/backups/base_de_dados/ -name 'Trabin*' -ctime +3 -exec rm -fv {} \;



#4º Procedimento que gera cópia do bando de dados.
echo "+++ Gerando copia do banco. Aguarde..."
pg_dump -Fc -Z9 -U postgres -h localhost -f /opt/backups/base_de_dados//Nome_do_Banco_$DATA$HORA.bkp  "Nome_do_Banco"
echo "+++ Nome_do_Banco copiado!"




#5º Neste ponto, gero um vacuum. Abaixo, a lista dos parâmetros possíveis.
echo " "


echo "+++ Gerando o vacuum do banco, Aguarde..."
#-a : passa em todos bancos de dados;
#-d base : para escolher o banco de dados;
#-f : vacuum full;
#-z - vacuum analyze;
#-v : verbose;
#-h : servidor remoto postgres;
#-U : login do usuarioo do banco.


vacuumdb -d "Nome_do_Banco"    -U postgres -q -z
#echo "+++ Vacuum - TrabinBase ok"



Um comentário:

  1. Opa!!! muito bom teu script.... vou pegar a parte de eleminar backup com mais de 3 dias....

    Muito bom....

    Parabéns..

    ResponderExcluir

Comente sempre por favor.