Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog do Luiz
Tela cheia

Estudos de Linux - Backup de bases de dados Postgre

12 de Abril de 2010, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 194 vezes
Recentemente passei por maus bocados depois que um servidor passou por problemas no sistema de arquivos que causaram perca de dados recentes, depois disso resolvi usar uma ferramenta que criasse uma cópia do servidor inteiro, para recuperá-lo caso seja necessário.<br /> <h2>Pré-requisitos:</h2><ul><li><code><b>libnotify</b></code> para exibir um balão de alerta quando o backup estiver em andamento (Não obrigatório).<br /> <p>Instale pelo console com <code>sudo apt-get install libnotify-bin</code> ou clicando <a title="clique para instalar pelo apt-url">aqui</a> caso esteja usando o firefox no ubuntu.</p></li> <li><code><b>postgresql-client</b></code> para ter a ferramenta pg_dumpall que vamos usar no script (Obrigatório).<br /> <p>Instale pelo console com <code>sudo apt-get install postgresql-client</code> ou clique <a title="clique para instalar pelo apt-url">aqui</a>.</p></li> </ul><h2>O Script:</h2><div class="code"><pre>#!/bin/sh pgu="postgres" #O usuário do banco de dados pgh="localhost" #O endereço do servidor destin="/home/usuario/backup/" #O local onde será feito o backup vYear=$(date +%Y) #O Ano vMonth=$(date +%m) #O Mês vDay=$(date +%d) #O Dia vH=$(date +%H) #A Hora vM=$(date +%M) #O minuto fileName="auto-$pgh-$vDay.$vMonth.$vYear.$vH.$vM.backup" #O nome do arquivo do backup fileError="auto-$pgh-$vDay.$vMonth.$vYear.$vH.$vM.error" #O nome do arquivo do backup icon="/usr/share/icons/gnome/scalable/actions/gtk-refresh.svg" #O icone da notificação startMsg="Está sendo efetuado um backup do servidor $pgh para o arquivo $destin$fileName!" #Mensagem de inicio endMsgSuccess="O backup do servidor $pgh para o arquivo $destin$fileName foi efetuado com sucesso!" #Mensagem de término com sucesso endMsgFail="Houve uma falha no backup do servidor $pgh para o arquivo $destin$fileName." #Mensagem de término com falha #Iniciando... echo $startMsg if [ $(which notify-send) ]; then notify-send "Backup Postgre" "$startMsg" -i $icon fi #Copiando... pg_dumpall -U $pgu -h $pgh > $destin$fileName 2>$destin$fileError s=$? if [ $s != 0 ]; then echo $endMsgFail if [ $(which notify-send) ]; then notify-send "Backup Postgre" "$endMsgFail" -i $icon fi error=$(cat $destin$fileError) zenity --error --window-icon="$icon" --title="Backup Postgre" --text="$endMsgFail\nDetalhes:\n$error" exit 1; else echo $endMsgSuccess if [ $(which notify-send) ]; then notify-send "Backup Postgre" "$endMsgSuccess" -i $icon fi zenity --notification --window-icon="$icon" --title="Backup Postgre" --text="$endMsgSuccess" exit 0; fi </pre></div><br /> Salve esse arquivo como backuper.sh (ou o nome que achar melhor) e depois altere as suas permissões para execução.<br /> <code>chmod +x backuper.sh</code><br /> Ai é só executá-lo pelo prompt usando <code>./backuper.sh</code>.<br /> <br /> No próximo post vou ensinar como fazer o script ser executado automáticamente e periodicamente.<br /> <br /> Até mais.<br /> <br /> <b>Update</b><br /> <br /> Dei uma tunada no script e agora ele faz clonagem de servidores Postgre<br /> No terminal, execute os comandos:<br /> <div class="code">wget http://dl.dropbox.com/u/4917466/pgclone<br /> sudo mv pgclone /bin/pgclone<br /> sudo chmod 777 /bin/pgclone<br /> </div>Agora quando for usar basta digitar no terminal um dos comandos abaixo<br /> <code>pgclone</code> <cite>Faz uma cópia do servidor localhost com o usuário postgres</cite><br /> <code>pgclone -u usuario -h host</code> <cite>Faz uma cópia do servidor "host" com o usuario "usuario"</cite><br /> <code>pgclone --clone --clone-user usuario --clone-host host</code> <cite>Faz uma clonagem do servidor localhost no servidor "host"</cite><img src="http://feeds.feedburner.com/~r/Folksilva/~4/uBkQlcHI3zE" height="1" width="1" />
Fonte: http://feedproxy.google.com/~r/Folksilva/~3/uBkQlcHI3zE/estudos-de-linux-backup-de-bases-de.html

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.