Pool de connexions léger pour PostgreSQL.
Page d'accueil : https://www.pgbouncer.org/
Sources, suivi des bugs : https://github.com/pgbouncer/pgbouncer
PgBouncer dépend de quelques éléments pour être compilé :
Lorsque les dépendances sont installées, exécutez simplement :
$ ./configure --prefix=/usr/local
$ make
$ make install
Si vous construisez à partir de Git ou si vous construisez pour Windows, veuillez consulter les instructions de construction distinctes ci-dessous.
PgBouncer effectue des recherches de nom d'hôte au moment de la connexion au lieu d'une seule fois au moment du chargement de la configuration. Cela nécessite une implémentation DNS asynchrone. Le tableau suivant présente les backends pris en charge et leur ordre d'analyse :
back-end | parallèle | EDNS0 (1) | /etc/hôtes | Recherche SOA (2) | note |
---|---|---|---|---|---|
c-ares | Oui | Oui | Oui | Oui | IPv6+CNAME bogué dans <=1.10 |
evdns, libévent 2.x | Oui | Non | Oui | Non | ne vérifie pas les mises à jour de /etc/hosts |
getaddrinfo_a, glibc 2.9+ | Oui | oui (3) | Oui | Non | N/A sur les non-glibc |
getaddrinfo, libc | Non | oui (3) | Oui | Non | nécessite des fils de discussion |
options edns0
à /etc/resolv.conf
.c-ares est l'implémentation la plus complète et est recommandée pour la plupart des utilisations et des packaging binaires (si une version suffisamment récente est disponible). Les evdns intégrés de Libevent conviennent également à de nombreuses utilisations, avec les restrictions répertoriées. Les autres backends sont pour la plupart des options héritées à ce stade et ne font plus l’objet de nombreux tests.
Par défaut, c-ares est utilisé s'il peut être trouvé. Son utilisation peut être forcée avec configure --with-cares
ou désactivée avec --without-cares
. Si c-ares n'est pas utilisé (introuvable ou désactivé), alors Libevent est utilisé. Spécifiez --disable-evdns
pour désactiver l'utilisation des evdns de Libevent et revenir à une implémentation basée sur la libc.
Pour activer l'authentification PAM, ./configure
a un indicateur --with-pam
(la valeur par défaut est non). Lorsqu'il est compilé avec la prise en charge de PAM, un nouveau type d'authentification global pam
est disponible pour valider les utilisateurs via PAM.
Pour activer l'intégration de systemd, utilisez l'option configure
--with-systemd
. Cela permet d'utiliser Type=notify
(ou Type=notify-reload
si vous utilisez systemd 253 ou version ultérieure) ainsi que l'activation de socket. Voir etc/pgbouncer.service
et etc/pgbouncer.socket
pour des exemples.
Construire PgBouncer à partir de Git nécessite que vous récupériez les sous-modules libusual et uthash et que vous génériez les fichiers d'en-tête et de configuration avant de pouvoir exécuter configure
:
$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure
$ make
$ make install
Tous les fichiers seront installés sous /usr/local
par défaut. Vous pouvez fournir une ou plusieurs options de ligne de commande pour configure
. Exécutez ./configure --help
pour répertorier les options disponibles et les variables d'environnement qui personnalisent la configuration.
Packages supplémentaires requis : autoconf, automake, libtool, pandoc
Consultez le fichier README.md
dans le répertoire test pour savoir comment exécuter les tests.
Le seul environnement de build pris en charge sous Windows est MinGW. Cygwin et Visual $ANYTHING ne sont pas pris en charge.
Pour construire sur MinGW, procédez comme d'habitude :
$ ./configure
$ make
En cas de compilation croisée depuis Unix :
$ ./configure --host=i586-mingw32msvc
L'exécution à partir de la ligne de commande se déroule comme d'habitude, sauf que les commutateurs -d
(démoniser), -R
(redémarrer) et -u
(changer d'utilisateur) ne fonctionneront pas.
Pour exécuter PgBouncer en tant que service Windows, vous devez configurer le paramètre service_name
pour définir un nom pour le service. Alors:
$ pgbouncer -regservice config.ini
Pour désinstaller le service :
$ pgbouncer -unregservice config.ini
Pour utiliser le journal des événements Windows, définissez syslog = 1
dans le fichier de configuration. Mais avant cela, vous devez enregistrer pgbevent.dll
:
$ regsvr32 pgbevent.dll
Pour le désinscrire, faites :
$ regsvr32 /u pgbevent.dll