Pesquisar este blog

terça-feira, 31 de janeiro de 2012

pool de conexão com pgBouncer no postgresql

Buscando uma melhoria nos acessos da aplicação ao banco de dados, instalei o pgBouncer para configurar um pool de conexão. Não vou entrar como instalar o PostgreSQL.

Baixando a versão estável do pgBouncer.
Verifica se a dependência libevent está  instalada, caso contrário instale.
Verificando dependência.
# yum list | grep libevent-dev
# yum install libevent-dev

Instalando o pgBouncer.
$ tar -zxvf pgbouncer-x.x.tar.gz
$ cd pgbouncer-x.x
Configurando instalação.
$ ./configure --prefix='eu escolhi o mesmo diretório de instalação do PostgreSQL'
Compilando instalação.
$ make
Instalando.
# make install

Copiando arquivo de configuração do pgBouncer e colando em /etc/pgbouncer.ini
# cp pgbouncer-x.x/pgbouncer.ini /etc/pgbouncer.ini

Editando o arquivo pgbouncer.ini
[databases]
# Porta que o banco de dados PostgreSQL está rodando.
* = port                   =5432
[pgbouncer]
# Arquivo log
logfile                      = /var/log/postgresql/pgbouncer.log
pidfile                      = /var/log/postgresql/pgbouncer.pid
# Local que o pgbouner vai escutar
listen_addr               = *
# Porta da qual irá rodar o pgBouncer
listen_port                = 6432
# Socket
unix_socket_dir        = /tmp
# Metodo de autenticação
auth_type                                = trust
# Local do arquivo de autenticação
auth_file                  = /ides/pgbouncer/pgbouncer.auth
# Usuário do pgBouncer
admin_users            = postgres
stats_users              = postgres
# Modo pool -> apartir deste ponto vai muito da configuração do seu ambiente e aplicação.
pool_mode               = transaction
server_reset_query = DISCARD ALL;
server_check_query                 = select 1
server_check_delay = 10
max_client_conn       = 100
default_pool_size      = 20
log_connections        = 1
log_disconnections    = 1
log_pooler_errors     = 1

Para criar o arquivo de senha você pode utilizar o comando a seguir.
postgres=# SELECT'"'||rolname||'"'||' "'||rolpassword||'"' FROM pg_authid;

Agora é só copiar a saída do comando e criar o arquivo como o modelo abaixo.
"user1" "md544b5deffhu7972jdde786abf68002dd5fdd4d"
"user2" "md52b20kk9813jk997ddlds45ha6b4der556ad03d8b27"
 Depois de configurado, vamos iniciar o pgBouncer
/localinstalação/bin/pgbouncer -d /etc/pgbouncer.ini

Nenhum comentário:

Postar um comentário