Leichter Verbindungspooler für PostgreSQL.
Homepage: https://www.pgbouncer.org/
Quellen, Fehlerverfolgung: https://github.com/pgbouncer/pgbouncer
PgBouncer hängt von einigen Dingen ab, die kompiliert werden müssen:
Wenn Abhängigkeiten installiert sind, führen Sie einfach Folgendes aus:
$ ./configure --prefix=/usr/local
$ make
$ make install
Wenn Sie mit Git oder für Windows erstellen, lesen Sie bitte die separaten Build-Anweisungen unten.
PgBouncer sucht zum Zeitpunkt der Verbindung nach Hostnamen und nicht nur einmal beim Laden der Konfiguration. Dies erfordert eine asynchrone DNS-Implementierung. Die folgende Tabelle zeigt unterstützte Backends und ihre Prüfreihenfolge:
Backend | parallel | EDNS0 (1) | /etc/hosts | SOA-Suche (2) | Notiz |
---|---|---|---|---|---|
c-ares | Ja | Ja | Ja | Ja | IPv6+CNAME fehlerhaft in <=1.10 |
evdns, libevent 2.x | Ja | NEIN | Ja | NEIN | prüft keine /etc/hosts-Updates |
getaddrinfo_a, glibc 2.9+ | Ja | ja (3) | Ja | NEIN | N/A für nicht-glibc |
getaddrinfo, libc | NEIN | ja (3) | Ja | NEIN | erfordert pthreads |
options edns0
zu /etc/resolv.conf
hinzu.c-ares ist die Implementierung mit dem umfassendsten Funktionsumfang und wird für die meisten Anwendungen und Binärpakete empfohlen (sofern eine ausreichend neue Version verfügbar ist). Auch das integrierte evdns von Libevent ist mit den aufgeführten Einschränkungen für viele Einsatzzwecke geeignet. Bei den anderen Backends handelt es sich derzeit größtenteils um Legacy-Optionen, die kaum noch getestet werden.
Standardmäßig wird c-ares verwendet, wenn es gefunden werden kann. Seine Verwendung kann mit configure --with-cares
erzwungen oder mit --without-cares
deaktiviert werden. Wenn c-ares nicht verwendet wird (nicht gefunden oder deaktiviert), wird Libevent verwendet. Geben Sie --disable-evdns
an, um die Verwendung von Libevents evdns zu deaktivieren und auf eine libc-basierte Implementierung zurückzugreifen.
Um die PAM-Authentifizierung zu aktivieren, verfügt ./configure
über ein Flag --with-pam
(Standardwert ist no). Bei Kompilierung mit PAM-Unterstützung steht ein neuer globaler Authentifizierungstyp pam
zur Validierung von Benutzern über PAM zur Verfügung.
Um die Systemd-Integration zu aktivieren, verwenden Sie die configure
--with-systemd
. Dies ermöglicht die Verwendung Type=notify
(oder Type=notify-reload
wenn Sie systemd 253 oder höher verwenden) sowie die Socket-Aktivierung. Beispiele finden Sie etc/pgbouncer.service
und etc/pgbouncer.socket
.
Um PgBouncer aus Git zu erstellen, müssen Sie die Submodule libusual und uthash abrufen und die Header- und Konfigurationsdateien generieren, bevor Sie configure
ausführen können:
$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure
$ make
$ make install
Alle Dateien werden standardmäßig unter /usr/local
installiert. Sie können eine oder mehrere Befehlszeilenoptionen zum configure
angeben. Führen Sie ./configure --help
aus, um die verfügbaren Optionen und Umgebungsvariablen aufzulisten, die die Konfiguration anpassen.
Zusätzlich erforderliche Pakete: autoconf, automake, libtool, pandoc
Informationen zum Ausführen der Tests finden Sie in der Datei README.md
im Testverzeichnis.
Die einzige unterstützte Build-Umgebung unter Windows ist MinGW. Cygwin und Visual $ANYTHING werden nicht unterstützt.
Um auf MinGW aufzubauen, gehen Sie wie üblich vor:
$ ./configure
$ make
Bei Cross-Kompilierung von Unix aus:
$ ./configure --host=i586-mingw32msvc
Die Ausführung über die Befehlszeile erfolgt wie gewohnt, mit der Ausnahme, dass die Schalter -d
(Daemonisieren), -R
(Neustart) und -u
(Benutzer wechseln) nicht funktionieren.
Um PgBouncer als Windows-Dienst auszuführen, müssen Sie den Parameter service_name
konfigurieren, um einen Namen für den Dienst festzulegen. Dann:
$ pgbouncer -regservice config.ini
So deinstallieren Sie den Dienst:
$ pgbouncer -unregservice config.ini
Um das Windows-Ereignisprotokoll zu verwenden, legen Sie in der Konfigurationsdatei syslog = 1
fest. Zuvor müssen Sie jedoch pgbevent.dll
registrieren:
$ regsvr32 pgbevent.dll
Um die Registrierung aufzuheben, gehen Sie wie folgt vor:
$ regsvr32 /u pgbevent.dll