Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: uname -a Slack
Por Noobv3rN
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Pool de Conexões Transparentes no Postgres usando o pgpool
Linux user
LunodeSouza
02/04/2012
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).
Por: LunodeSouza | Blog: http://www.darkers.com.br
[ Hits: 4769 ]
Conceito: 10.0   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

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:

# Host name or IP address dos clientes que irão conectar no pgpool: # '*' for all, '' for no TCP/IP connections listen_addresses = '*' # Porta em que o pgpool vai trabalhar port = 9999 # Número de Pools num_init_children = 32 # Número de conexão por Pool, 4 para testes. max_pool = 4 # Pool exits after being idle for this many seconds child_life_time = 300 # Pool exits after receiving that many connections # 0 means no exit child_max_connections = 0 # Connection to backend closes after being idle # for this many seconds # 0 means no close connection_life_time = 0 # Client is disconnected after being idle for that many seconds # 0 means no disconnection client_idle_limit = 0 # Host name or IP address do PostgreSQL, apelidado de hostname0 backend_hostname0 = 'localhost' # Port number usada pelo PostgreSQL backend_port0 = 5432 # Usar 1, 0 apenas para load balance backend_weight0 = 1 # IMPORTANTE – geralmente vem errado na instalação pid_file_name = '/var/run/pgpool.pid' # Directory of pgPool status file logdir = '/var/log'


Vale ressaltar uma diretiva importante na configuração do 'pgpool', é a que define a regra para limpar o Pool. Ajuste de acordo com a versão de seu PostgreSQL!

reset_query_list = 'ABORT; DISCARD ALL'


O comando é diferente para cada versão do PostgreSQL. As configurações recomendadas são:

---------------------------------------------------------------------------------------------------- |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

Leitura recomendada

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

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



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.