Pool de Conexões Transparentes no Postgres usando o pgpool

Tendo em vista um ambiente híbrido entre as tecnologias PHP, Java e como banco de dados o Postgres, a solução indicada
foi a utilização de um Pool de Conexões transparente utilizando, como ferramenta, o MIDlet pgpool. Esta solução de Pool
de Conexões, serve para qualquer tipo de linguagem, principalmente quando se trata de ambientes híbridos (quando se é
utilizado N linguagens de programação).

[ Hits: 27.547 ]

Por: LunodeSouza em 02/04/2012 | Blog: https://br.linkedin.com/in/lunodesouza


Instalação e Configuração



Instalando o pgpool II

Este artigo foi elaborado utilizando um ambiente com base no sistema operacional Arch Linux, Release: 2011.08.19, mas como instalaremos a partir do código fonte, não teremos grandes problemas com outras distribuições Linux.

- Requisitos:
  • pgpool II 3.1.1;
  • PostgreSQL;
  • Apache Web Server;
  • php 5;
  • Wordpress (para teste).

- Vantagens do Pool de conexões:
  • 'Aglomeração' de conexões mantidas com o PostgreSQL;
  • Conexão de forma transparente;
  • Para a aplicação, o Pgpool é o próprio PostgreSQL;
  • Para o PostgreSQL o Pgpool é um cliente comum;
  • Não há necessidade de alterações na aplicação;
  • Redução do Overhead causado pelo Fork de processos;
  • Controle do número de conexões e tamanho do pool;
  • Caso as requisições ultrapassem o tamanho do pool, uma fila de requisições é criada.

- Instalação:

A instalação do pgpool II, será feita de forma objetiva, a partir dos pacotes oficiais disponibilizados no site do Projeto.

- Passos:

wget -c http://www.pgpool.net/download.php? f=pgpool-II-3.1.1.tar.gz
tar xvzf pgpool-II-3.1.1.tar.gz
$ cd pgpool-II-3.1.1
$ ./configure
$ make
$ make install
$ make clean


Caso o comando 'configure', apresente o erro:
configure: error: libpq is not installed or libpq is old

Isto é devido ao Script de configuração procurar o banco de dados em “/usr/local/pgsql”.

Então, se o banco de dados estiver localizado em um local personalizado, deverá adicionar os seguintes parâmetros para o Script 'configure', informando os diretórios de trabalho do Postgres:

$ ./configure \
--with-pgsql /local/do/portgres \
–with-pgsql-libdir /postgre/lib


Por padrão, o 'pgpool' será instalado no diretório “/usr/local”.

Configurando o pgpool II

Tendo o 'pgpool' instalado, vamos à configuração.

Os arquivos de configuração pós-instalação, estão dentro de “/usr/local/etc”.

Vamos fazer uma cópia da configuração de exemplo, e iremos configurar:

cd /usr/local/etc
$ mv pgpool.conf.sample pgpool.conf
$ vim pgpool.conf


Dentre as configurações possíveis no “pgpool.conf”, nós iremos configurar os seguintes parâmetros com as devidas modificações:

----------------------------------------------------------------------------------------------------
|PostgreSQL version       | reset_query_list value                                                 |
----------------------------------------------------------------------------------------------------
| 7.1 or before           | ABORT                                                                  |
| 7.2 to 8.2              | ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT                    |
| 8.3 or later            | ABORT; DISCARD ALL                                                     |
----------------------------------------------------------------------------------------------------
+ "ABORT" is not issued when not in a transaction block for 7.4 or later.
    Próxima página

Páginas do artigo
   1. Instalação e Configuração
   2. Utilização e Teste
Outros artigos deste autor

Postfix fazendo relay SMTP do Gmail/Google Apps

Leitura recomendada

PostgreSQL 9.4 - Replicação com slots

Instalando PostgreSQL 8.1 com extensão para dados espaciais (PostGis) e interface de gerenciamento (PgAdmin3)

Sincronizando Dados do PostgreSQL no Elasticsearch

Programando PostgreSQL + PHP

Como migrar banco de dados MySQL para PostgreSQL

  
Comentários
[1] Comentário enviado por remontti em 02/04/2012 - 10:25h

Parabéns!
Ótimo tuto man! Continue compartilhando! o/

[2] Comentário enviado por senger em 19/02/2014 - 11:05h

Olá

A respeito do erro configure: error: libpq is not installed or libpq is old, pra mim não adiantou mudar a pasta através da configuração do --with-pgsql pois o pg_config já estava correto, mas eu consegui corrigir instalando o libdb-dev, então pra quem precisar, somente a instalação abaixo pra mim funcionou.


$ apt-get install libdb-dev


Mas o tutorial foi bem útil, obrigado!

[3] Comentário enviado por lunodesouza em 19/02/2014 - 11:22h

Obrigado por sua contribuição Senger :D


[2] Comentário enviado por senger em 19/02/2014 - 11:05h:

Olá

A respeito do erro configure: error: libpq is not installed or libpq is old, pra mim não adiantou mudar a pasta através da configuração do --with-pgsql pois o pg_config já estava correto, mas eu consegui corrigir instalando o libdb-dev, então pra quem precisar, somente a instalação abaixo pra mim funcionou.


$ apt-get install libdb-dev


Mas o tutorial foi bem útil, obrigado!




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts