Agrupador de conexiones ligero para PostgreSQL.
Página de inicio: https://www.pgbouncer.org/
Fuentes, seguimiento de errores: https://github.com/pgbouncer/pgbouncer
PgBouncer depende de algunas cosas para compilarse:
Cuando las dependencias estén instaladas, simplemente ejecute:
$ ./configure --prefix=/usr/local
$ make
$ make install
Si está compilando desde Git o para Windows, consulte las instrucciones de compilación independientes a continuación.
PgBouncer realiza búsquedas de nombres de host en el momento de la conexión en lugar de solo una vez en el momento de carga de la configuración. Esto requiere una implementación de DNS asíncrona. La siguiente tabla muestra los backends admitidos y su orden de sondeo:
backend | paralelo | EDNS0 (1) | /etc/hosts | Búsqueda SOA (2) | nota |
---|---|---|---|---|---|
c-ares | Sí | Sí | Sí | Sí | Error de IPv6+CNAME en <=1.10 |
evdns, librevent 2.x | Sí | No | Sí | No | no comprueba las actualizaciones de /etc/hosts |
getaddrinfo_a, glibc 2.9+ | Sí | si (3) | Sí | No | N/A en no glibc |
getaddrinfo, libc | No | si (3) | Sí | No | requiere pthreads |
options edns0
a /etc/resolv.conf
.c-ares es la implementación con más funciones y se recomienda para la mayoría de los usos y paquetes binarios (si hay disponible una versión suficientemente nueva). El evdns integrado de Libevent también es adecuado para muchos usos, con las restricciones enumeradas. Los otros backends son en su mayoría opciones heredadas en este momento y ya no reciben muchas pruebas.
De forma predeterminada, se utiliza c-ares si se puede encontrar. Su uso se puede forzar con configure --with-cares
o deshabilitarlo con --without-cares
. Si no se usa c-ares (no se encuentra o está deshabilitado), entonces se usa Libevent. Especifique --disable-evdns
para deshabilitar el uso de evdns de Libevent y recurrir a una implementación basada en libc.
Para habilitar la autenticación PAM, ./configure
tiene un indicador --with-pam
(el valor predeterminado es no). Cuando se compila con soporte PAM, un nuevo tipo de autenticación global pam
está disponible para validar usuarios a través de PAM.
Para habilitar la integración de systemd, use la opción configure
--with-systemd
. Esto permite usar Type=notify
(o Type=notify-reload
si está usando systemd 253 o posterior), así como la activación de socket. Consulte etc/pgbouncer.service
y etc/pgbouncer.socket
para ver ejemplos.
La creación de PgBouncer desde Git requiere que obtenga los submódulos libusual y uthash y genere el encabezado y los archivos de configuración antes de poder ejecutar configure
:
$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure
$ make
$ make install
Todos los archivos se instalarán en /usr/local
de forma predeterminada. Puede proporcionar una o más opciones de línea de comandos para configure
. Ejecute ./configure --help
para enumerar las opciones disponibles y las variables de entorno que personalizan la configuración.
Paquetes adicionales requeridos: autoconf, automake, libtool, pandoc
Consulte el archivo README.md
en el directorio de pruebas para saber cómo ejecutar las pruebas.
El único entorno de compilación compatible en Windows es MinGW. Cygwin y Visual $ANYTHING no son compatibles.
Para aprovechar MinGW, haga lo habitual:
$ ./configure
$ make
Si realiza una compilación cruzada desde Unix:
$ ./configure --host=i586-mingw32msvc
La ejecución desde la línea de comando se realiza como de costumbre, excepto que los modificadores -d
(daemonizar), -R
(reiniciar) y -u
(cambiar de usuario) no funcionarán.
Para ejecutar PgBouncer como un servicio de Windows, debe configurar el parámetro service_name
para establecer un nombre para el servicio. Entonces:
$ pgbouncer -regservice config.ini
Para desinstalar el servicio:
$ pgbouncer -unregservice config.ini
Para utilizar el registro de eventos de Windows, establezca syslog = 1
en el archivo de configuración. Pero antes de eso, necesitas registrar pgbevent.dll
:
$ regsvr32 pgbevent.dll
Para cancelar el registro, haga:
$ regsvr32 /u pgbevent.dll