A ideia por trás do pool de conexões é que você tenha conexões suficientes para usar todos os recursos disponíveis e todas as solicitações recebidas sejam reutilizadas sem descartar a conexão com o banco de dados e mantendo-se pronta para uma nova conexão.
pgbouncer é um pool de conexões leve. O pgBouncer é executado como um único processo, não gerando um processo por conexão, que depende da biblioteca chamada libevent para o pool de conexões.
A configuração do pgbouncer no PostgreSQL 9.0 é muito simples, porém há pequenas mudanças com a versão mais recente que você precisa para criar o arquivo pg_auth manual. O pgbouncer usa o arquivo pg_auth para autenticação do usuário. Na versão anterior do PostgreSQL 9.0, você pode encontrar o arquivo pg_auth em $PGDATA/global/pg_auth, agora na versão mais recente esse arquivo foi removido e colocado em pg_catalog como tabela ‘pg_auth’.
Configuração do pgbouncer:
1. Primeiro, baixe a biblioteca libevent para pgbouncer.
Link de download para libevent:
http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz
tar -xvf libevent-2.0.12-stable.tar.gz
cd libevent-2.0.12-stable
./configure
make
make install
2. Baixe o tar mais recente do pgbouncer e configure para o seu PostgreSQL 9.0.
http://pgfoundry.org/frs/download.php/2912/pgbouncer-1.4.tgz
tar -xvf pgbouncer-1.4
cd pgbouncer-1.4
./configure --prefix=/opt/PostgreSQL/9.0/bin
make
make install
3. Crie um arquivo libevent-i386.conf no diretório /etc/ld.so.conf.d
vi /etc/ld.so.conf.d/libevent-i386.conf
/usr/local/lib
:wq!
4. Execute o ldconfig para aplicar novas alterações.
#ldconfig
5. Altere a propriedade do utilitário pgbouncer no binário PostgreSQL para o usuário postgres.
chown -R postgres:postgres /opt/PostgreSQL/9.0/bin/bin/pgbouncer
6. Crie o arquivo pgbouncer_auth para autenticação de usuários.
7. Crie o arquivo pgbouncer.ini com permissão de usuário postgres no diretório /etc.
8. Iniciar pgbouncer
-bash-4.1$ ./pgbouncer -d /etc/pgbouncer.ini
2011-08-14 11:42:00.925 1949 LOG File descriptor limit: 1024 (H:1024), max_client_conn: 1000, max fds possible: 1010
9. Conecte-se aos bancos de dados usando pgbouncer
10. Obtendo ajuda:Conecte-se ao banco de dados pgbouncer e obtenha ajuda.
$ psql -p 6432 -U postgres pgbouncer
pgbouncer=# show help;
Para melhor compreensão sobre pg_auth você pode encontrar no link abaixo por 'depesz'.
http://www.depesz.com/index.php/2010/12/04/auto-refreshing-password-file-for- pgbouncer/
Poste seus comentários que são muito apreciados.