PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verbindungspooling mit Pgbouncer auf PostgreSQL 9.0

Verbindungspooling, Warum wir uns für Verbindungspooling in PostgreSQL entscheiden, Wenn Ihre Anwendung eine sehr gute Anzahl gleichzeitiger Verbindungstreffer erfordert, müssen Sie sich ihr nähern, da der Verbindungspool zwischen Ihrer Anwendung und der Datenbank sitzt.

Die Idee hinter dem Verbindungspool ist, dass Sie genügend Verbindungen haben, um alle verfügbaren Ressourcen zu nutzen, und alle eingehenden Anforderungen wiederverwendet werden, ohne die Datenbankverbindung zu unterbrechen und für eine neue Verbindung bereitzuhalten.

pgbouncer ist ein leichter Verbindungspooler. pgBouncer wird als einzelner Prozess ausgeführt und erzeugt keinen Prozess pro Verbindung, der sich auf die Bibliothek namens libevent für das Verbindungspooling stützt.

Das pgbouncer-Setup auf PostgreSQL 9.0 ist sehr einfach, es gibt jedoch eine kleine Änderung mit der neuesten Version, die Sie zum Erstellen einer manuellen pg_auth-Datei benötigen. pgbouncer verwendet die pg_auth-Datei für die Benutzerauthentifizierung. In früheren Versionen von PostgreSQL 9.0 finden Sie die pg_auth-Datei unter $PGDATA/global/pg_auth, jetzt wurde diese Datei in der neuesten Version entfernt und in pg_catalog als Tabelle „pg_auth“ abgelegt.

pgbouncer-Setup:

1. Laden Sie zuerst die libevent-Bibliothek für pgbouncer herunter.
Download-Link für 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. Laden Sie das neueste Pgbouncer-Tar herunter und konfigurieren Sie es auf 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. Erstellen Sie eine libevent-i386.conf-Datei im /etc/ld.so.conf.d-Verzeichnis

vi /etc/ld.so.conf.d/libevent-i386.conf

/usr/local/lib
:wq!

4. Führen Sie ldconfig aus, um neue Änderungen anzuwenden.

#ldconfig

5. Ändern Sie den Besitz des Dienstprogramms pgbouncer in der PostgreSQL-Binärdatei zu postgres user.

chown -R postgres:postgres /opt/PostgreSQL/9.0/bin/bin/pgbouncer

6. Erstellen Sie die Datei pgbouncer_auth für die Benutzerauthentifizierung.

7. Erstellen Sie die Datei pgbouncer.ini mit Postgres-Benutzerberechtigung im Verzeichnis /etc.

8. pgbouncer starten

-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. Stellen Sie mit pgbouncer

eine Verbindung zu den Datenbanken her

10. Hilfe erhalten:Verbinden Sie sich mit der pgbouncer-Datenbank und erhalten Sie Hilfe.

$ psql -p 6432 -U postgres pgbouncer

pgbouncer=# show help;

Zum besseren Verständnis von pg_auth finden Sie den folgenden Link von 'depesz'.
http://www.depesz.com/index.php/2010/12/04/auto-refreshing-password-file-for- pgbouncer/

Veröffentlichen Sie Ihre Kommentare, die sehr geschätzt werden.