Pooler de conexões leve para PostgreSQL.
Página inicial: https://www.pgbouncer.org/
Fontes, rastreamento de bugs: https://github.com/pgbouncer/pgbouncer
O PgBouncer depende de algumas coisas para ser compilado:
Quando as dependências estiverem instaladas, basta executar:
$ ./configure --prefix=/usr/local
$ make
$ make install
Se você estiver compilando a partir do Git ou para Windows, consulte as instruções de compilação separadas abaixo.
O PgBouncer faz pesquisas de nome de host no momento da conexão, em vez de apenas uma vez no momento do carregamento da configuração. Isto requer uma implementação de DNS assíncrona. A tabela a seguir mostra back-ends compatíveis e sua ordem de investigação:
back-end | paralelo | EDNS0 (1) | /etc/hosts | Pesquisa SOA (2) | observação |
---|---|---|---|---|---|
c-ares | sim | sim | sim | sim | Buggy IPv6+CNAME em <=1.10 |
evdns, libevent 2.x | sim | não | sim | não | não verifica atualizações de /etc/hosts |
getaddrinfo_a, glibc 2.9+ | sim | sim (3) | sim | não | N/A em não glibc |
getaddrinfo, libc | não | sim (3) | sim | não | requer pthreads |
options edns0
a /etc/resolv.conf
.c-ares é a implementação com mais recursos e é recomendada para a maioria dos usos e pacotes binários (se uma versão suficientemente nova estiver disponível). O evdns integrado do Libevent também é adequado para muitos usos, com as restrições listadas. Os outros back-ends são, em sua maioria, opções legadas neste momento e não recebem mais muitos testes.
Por padrão, c-ares é usado se puder ser encontrado. Seu uso pode ser forçado com configure --with-cares
ou desabilitado com --without-cares
. Se c-ares não for usado (não encontrado ou desabilitado), então Libevent será usado. Especifique --disable-evdns
para desabilitar o uso de evdns do Libevent e voltar para uma implementação baseada em libc.
Para habilitar a autenticação PAM, ./configure
possui um sinalizador --with-pam
(o valor padrão é não). Quando compilado com suporte ao PAM, um novo tipo de autenticação global pam
está disponível para validar usuários através do PAM.
Para habilitar a integração do systemd, use a opção configure
--with-systemd
. Isso permite usar Type=notify
(ou Type=notify-reload
se você estiver usando o systemd 253 ou posterior), bem como a ativação do soquete. Consulte etc/pgbouncer.service
e etc/pgbouncer.socket
para obter exemplos.
Construir o PgBouncer a partir do Git requer que você busque os submódulos libusual e uthash e gere o cabeçalho e os arquivos de configuração antes de poder executar configure
:
$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure
$ make
$ make install
Todos os arquivos serão instalados em /usr/local
por padrão. Você pode fornecer uma ou mais opções de linha de comando para configure
. Execute ./configure --help
para listar as opções disponíveis e as variáveis de ambiente que personalizam a configuração.
Pacotes adicionais necessários: autoconf, automake, libtool, pandoc
Consulte o arquivo README.md
no diretório de teste para saber como executar os testes.
O único ambiente de compilação suportado no Windows é o MinGW. Cygwin e Visual $ANYTHING não são suportados.
Para construir no MinGW, faça o habitual:
$ ./configure
$ make
Se for compilação cruzada do Unix:
$ ./configure --host=i586-mingw32msvc
A execução a partir da linha de comando ocorre normalmente, exceto que as opções -d
(daemonizar), -R
(reiniciar) e -u
(alternar usuário) não funcionarão.
Para executar o PgBouncer como um serviço do Windows, você precisa configurar o parâmetro service_name
para definir um nome para o serviço. Então:
$ pgbouncer -regservice config.ini
Para desinstalar o serviço:
$ pgbouncer -unregservice config.ini
Para usar o log de eventos do Windows, defina syslog = 1
no arquivo de configuração. Mas antes disso, você precisa registrar pgbevent.dll
:
$ regsvr32 pgbevent.dll
Para cancelar o registro, faça:
$ regsvr32 /u pgbevent.dll