<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Valdinei dos Santos &#187; postgresql</title>
	<atom:link href="http://www.valdineidossantos.com/tag/postgresql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.valdineidossantos.com</link>
	<description>programação, sistemas operacionais e assuntos web</description>
	<lastBuildDate>Sat, 27 Feb 2010 20:09:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Postgresql &#8211; Backup de todas as base de dados</title>
		<link>http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/</link>
		<comments>http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 17:20:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.valdineidossantos.com/?p=30</guid>
		<description><![CDATA[Motivado por esse post ( http://www.vivaolinux.com.br/dica/PostgreSQL-Fazendo-backup-de-um-servidor-inteiro ) resolvi fazer algumas adaptações para atender as minhas especificações. Eu preciso ter backup do servidor inteiro mais não necessáriamente preciso retornar todas as bases para o novo servidor novamente, por esse motivo fiz o meu próprio script para resolver esse problema. Utilizando a linguagem python associada aos aplicativos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.postgresql.org/" target="_blank"><img class="size-full wp-image-45" title="postgresql" src="http://www.valdineidossantos.com/wp-content/uploads/2009/07/postgresql.png" alt="postgresql" width="500" height="50" /></a></p>
<p>Motivado por esse post ( <a title="http://www.vivaolinux.com.br/dica/PostgreSQL-Fazendo-backup-de-um-servidor-inteiro" href="http://www.vivaolinux.com.br/dica/PostgreSQL-Fazendo-backup-de-um-servidor-inteiro" target="_blank">http://www.vivaolinux.com.br/dica/PostgreSQL-Fazendo-backup-de-um-servidor-inteiro</a> ) resolvi fazer algumas adaptações para atender as minhas especificações.</p>
<p>Eu preciso ter backup do servidor inteiro mais não necessáriamente preciso retornar todas as bases para o novo servidor novamente, por esse motivo fiz o meu próprio script para resolver esse problema.</p>
<p>Utilizando a linguagem python associada aos aplicativos do postgresql montei esta rotina.</p>
<pre class="brush: python">#!/usr/bin/env python
#! -*- coding:utf8 -*-
########################################################
#  Script para fazer o pg_dump de todos os
#   bancos da máquina em que ele for executado
#  Valdinei dos Santos
#  valdineidossantos(at)gmail.com.br
#  27 Julho de 2009
########################################################
#Importando o getstatusoutput responsavel por executar os comandos do sistema operacional
from commands import getstatusoutput
from datetime import datetime
from os import path

#config
psql="/usr/bin/psql"
pg_dump="/usr/bin/pg_dump"
user="pguser-vale"
host="valdineidossantos.com"
repository = "/media/backup/databases/"

#Functions
def getAllDatabases(psql, user, host):
    print "\nRecuperando as bases de dados do servidor %s" % host
    command = "%s -U %s -h %s -l" % (psql, user, host)
    status, output = getstatusoutput ( command )
    if int(status) == 0:
       #return lista de servidores
       return stringToListServers( output )
    else:
        return [[],] 

def stringToListServers( databaseString ):
    print "\nFormatando a string"
    temp_pieces = databaseString.split("\n")
    dataBases = []
    for i in temp_pieces[3:]:
        try:
            pieces = i.split("|")
            owner  = pieces[1].strip()
            dbName = pieces[0].strip()
            encode = pieces[2].strip()
            data   = [dbName, encode, owner]
            if data:
                dataBases.append ( data )
        except Exception, e:
            continue
            #print e.__doc__
    return dataBases

#Init
if __name__ == '__main__':

    allDataBases =  getAllDatabases(psql, user, host)

    day = datetime.now().strftime("%Y%m%d")
    for database, encode, owner in allDataBases:
        #name Example databasename-20092707.dump
        dumpName = "%s-%s.dump" % (database, day)    

        #/dev/null/databasename-20092707.dump
        file = path.join(repository, dumpName)

        command = "%s -U %s -h %s -E %s  -f %s -i -Fc %s " % (pg_dump, user, host, encode, file, database)

        status, output = getstatusoutput( command)

        if int(status) &gt; 0:
            print "Erro no backup da database %s\n %s" % (database, output)</pre>
<p>Após esse script finalizado teremos no diretorio que foi setado no config &#8220;repository&#8221; todos os bancos de dados disponiveis no servidor.<br />
Para voltar novamente com a base dados para o novo servidor rodamos o comando.</p>
<pre class="brush: bash">pg_restore -d |nome da base dados| -Fc |caminho/nome do arquivo dump|</pre>
<p>Temos algumas outras opções em shell script  mas preferi usar  o python  :)<br />
<a href="http://www.python.org/" target="_blank"><img class="size-medium wp-image-46" title="python" src="http://www.valdineidossantos.com/wp-content/uploads/2009/07/python-300x101.jpg" alt="Python " width="300" height="101" /></a></p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "python";
            bb_bid  = "135874";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "9";bb_format = "bbo";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->

<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/feed" rel="nofollow" class="external" title="Acompanhar comentários deste artigo?">Acompanhar comentários deste artigo?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;title=Postgresql+-+Backup+de+todas+as+base+de+dados" rel="nofollow" class="external" title="Compartilhar nodel.icio.us">Compartilhar nodel.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;title=Postgresql+-+Backup+de+todas+as+base+de+dados" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;title=Postgresql+-+Backup+de+todas+as+base+de+dados&amp;desc=%0D%0A%0D%0AMotivado%20por%20esse%20post%20%28%20http%3A%2F%2Fwww.vivaolinux.com.br%2Fdica%2FPostgreSQL-Fazendo-backup-de-um-servidor-inteiro%20%29%20resolvi%20fazer%20algumas%20adapta%C3%A7%C3%B5es%20para%20atender%20as%20minhas%20especifica%C3%A7%C3%B5es.%0D%0A%0D%0AEu%20preciso%20ter%20backup%20do%20servidor%20inteiro%20mais%20n%C3%A3o%20necess%C3%A1riamente%20preciso%20retornar%20todas%20as%20bases%20para%20o" rel="nofollow" class="external" title="Publicar noDiigo">Publicar noDiigo</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;t=Postgresql+-+Backup+de+todas+as+base+de+dados" rel="nofollow" class="external" title="Compartilhar noFacebook">Compartilhar noFacebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-hotmail">
			<a href="http://mail.live.com/?rru=compose?subject=Postgresql+-+Backup+de+todas+as+base+de+dados&amp;body=Link: http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A %0D%0A%0D%0AMotivado%20por%20esse%20post%20%28%20http%3A%2F%2Fwww.vivaolinux.com.br%2Fdica%2FPostgreSQL-Fazendo-backup-de-um-servidor-inteiro%20%29%20resolvi%20fazer%20algumas%20adapta%C3%A7%C3%B5es%20para%20atender%20as%20minhas%20especifica%C3%A7%C3%B5es.%0D%0A%0D%0AEu%20preciso%20ter%20backup%20do%20servidor%20inteiro%20mais%20n%C3%A3o%20necess%C3%A1riamente%20preciso%20retornar%20todas%20as%20bases%20para%20o" rel="nofollow" class="external" title="Email this via Hotmail">Email this via Hotmail</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;bm_description=Postgresql+-+Backup+de+todas+as+base+de+dados&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Adicionar aoMister Wong">Adicionar aoMister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;title=Postgresql+-+Backup+de+todas+as+base+de+dados" rel="nofollow" class="external" title="Compartilhar noMixx">Compartilhar noMixx</a>
		</li>
		<li class="shr-orkut">
			<a href="http://promote.orkut.com/preview?nt=orkut.com&amp;tt=Postgresql+-+Backup+de+todas+as+base+de+dados&amp;du=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;cn=%0D%0A%0D%0AMotivado%20por%20esse%20post%20%28%20http%3A%2F%2Fwww.vivaolinux.com.br%2Fdica%2FPostgreSQL-Fazendo-backup-de-um-servidor-inteiro%20%29%20resolvi%20fazer%20algumas%20adapta%C3%A7%C3%B5es%20para%20atender%20as%20minhas%20especifica%C3%A7%C3%B5es.%0D%0A%0D%0AEu%20preciso%20ter%20backup%20do%20servidor%20inteiro%20mais%20n%C3%A3o%20necess%C3%A1riamente%20preciso%20retornar%20todas%20as%20bases%20para%20o" rel="nofollow" class="external" title="Promover noOrkut">Promover noOrkut</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;title=Postgresql+-+Backup+de+todas+as+base+de+dados" rel="nofollow" class="external" title="Compartilhar noReddit">Compartilhar noReddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/&amp;title=Postgresql+-+Backup+de+todas+as+base+de+dados" rel="nofollow" class="external" title="Encontrou algo bom? Compartilhe no StumbleUpon">Encontrou algo bom? Compartilhe no StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/" rel="nofollow" class="external" title="Compartilhar noTechnorati">Compartilhar noTechnorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=RT+%40valdineisantos%3A+Postgresql+-+Backup+de+todas+as+base+de+dados+-+http://tr.im/vi2g&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-yahoomail">
			<a href="http://compose.mail.yahoo.com/?Subject=Postgresql+-+Backup+de+todas+as+base+de+dados&amp;body=Link: http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A %0D%0A%0D%0AMotivado%20por%20esse%20post%20%28%20http%3A%2F%2Fwww.vivaolinux.com.br%2Fdica%2FPostgreSQL-Fazendo-backup-de-um-servidor-inteiro%20%29%20resolvi%20fazer%20algumas%20adapta%C3%A7%C3%B5es%20para%20atender%20as%20minhas%20especifica%C3%A7%C3%B5es.%0D%0A%0D%0AEu%20preciso%20ter%20backup%20do%20servidor%20inteiro%20mais%20n%C3%A3o%20necess%C3%A1riamente%20preciso%20retornar%20todas%20as%20bases%20para%20o" rel="nofollow" class="external" title="Email this via Yahoo! Mail">Email this via Yahoo! Mail</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.valdineidossantos.com/2009/07/postgresql-backup-de-todas-as-base-de-dados/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
