Como fazer replicação de banco de dados PostgreSQL?

Há alguns dias venho dedicando um tempo com o banco PostgreSQL para aprender como funciona sua replicação utilizando ARCHIVES.
Em paralelo com o ambiente de testes VOSTROLAB que vocês já conhecem, tudo foi testado e documentado minusciosamente como de costume.

Como fecharam 9 páginas em um PDF resolvi publicar pelo Dropbox ao invés de fazer um mega-post gigantesco aqui no Blog CiaLinux.

Link para acesso download do artigo em formato PDF: HOW_TO_REPLICACAO_PGSQL

Por: Hudson Murilo dos Santos
Referências:
Não muito boas em minha opinião:
http://michsan.blogspot.com/2008/08/using-pgstandby-for-high-availability.html
http://www.psql.it/manuale/8.3/pgstandby.html

Oficiais (as melhores em minha opinião):
MEGABOM: http://www.postgresql.org/docs/8.4/static/continuous-archiving.html
NEXT IS: http://www.postgresql.org/docs/8.4/static/warm-standby.html
http://www.postgresql.org/docs/8.4/static/wal-configuration.html
http://www.postgresql.org/docs/8.4/static/pgstandby.html
http://www.postgresql.org/docs/8.4/static/high-availability.html

Recomendadas nas entrelinhas das oficiais:
http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pg_standby/
http://developer.postgresql.org/pgdocs/postgres/warm-standby.html

Funcoes administrativas: http://www.postgresql.org/docs/8.4/static/functions-admin.html

7 thoughts on “Como fazer replicação de banco de dados PostgreSQL?

  1. Gostei do artigo, está bem escrito e de fácil compreensão. É para criação de base de dados standby. Más é valido apenas como prova de conceito pois não seria possível abrir a base de dados “slave” para read only, o que inviabiliza o uso como stage para carga de datawarehouse.
    Além disso, em caso de crash do servidor “master” vai haver perda de transações, então também não serve para uma pseudo alta disponibilidade.
    Outro detalhe que eu considero temerário é a sugestão para se usar sistemas operacionais diferentes (fedora e centos).

    1. Opa Ivan, tudo certo amigo? Espero que sim…

      Inicialmente obrigado pela leitura do artigo. Realmente em nenhum momento podemos abrir a base “slave” para read-only. Ela fica em processo de “starting-up” o tempo todo enquanto fica em modo de recuperação de logs… Não daria pra usar como origem de carga para um DW realmente.

      Para uma alta-disponibilidade, concordo que este artigo ainda não proporciona o ambiente mais disponível possível. Mas é um bom passo para tal. Por isso, estou elaborando uma continuação com a explicação de como usar o PGPOOL, onde daí sim, não há perda de transações, se houver é durante alguns segundos (definido em parâmetro).

      Além disso, podemos deixar um pouco dessa preocupação com a garantia das transações, para um recurso nativo e obrigatório de qualquer SGBD chamado ATOMICIDADE.

      Relembrando lá das aulas da faculdade:

      # Atomicidade (http://pt.wikipedia.org/wiki/Banco_de_dados)

      * Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Qualquer ação que constitui falha na unidade de trabalho, a transação deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada (commit).

      Assim podemos concluir que com o pgpool, temos sim a alta-disponibilidade do nosso serviço… =) Nem para uma instituição financeira como um BANCO, alguns segundos fazem diferença…

      Quanto às distribuições utilizadas, foram apenas em ambiente de teste controlado pois minha estação de trabalho já estava com o Fedora 13 hehe. A sugestão mesmo é usar CentOS release final 64-bits em ambos os servidores.

      Espero ter esclarecido suas colocações Ivan… No mais, continue acompanhando o BLOG que em breve teremos mais um post aqui sobre o PGPOOL, está 90% pronto aqui no CiaLinuxLabs para então publicar aos leitores.

      Abraços

      // Hudson Santos

    1. Obrigado mestre Gledson!

      Saudades do amigo…

      Valeu também pela leitura! Estou bolando um segundo artigo sobre replicação de postgresql envolvendo o PGPOOL.. fica tranquilo que te aviso quando eu postar.

      Atenciosamente,

      Hudson

  2. Ôpa!
    Sobre este segundo artigo sobre replicação de postgresql envolvendo o PGPOOL, eu tambem quero ser informado quando ficar pronto!!
    Parabéns pelo primeiro artigo, ficou muito bom mesmo!

    Obrigado!!

    1. Olá Bruno Garcia,

      Obrigado pelo elogio e também pela leitura.

      Comecei a fazer sobre o pgpool, algo um pouco mais avançado, mas não terminei ainda ao ponto de publicar aqui.

      Acabei de te adicionar no GTALK para te passar o artigo em andamento mesmo (rascunho), pois tenho certeza que ja te ajudará bastante a entender o pgpool.

      Atenciosamente,

      Hudson

Leave a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *