PgBouncer
PgBouncer est un pooler de connexion pour PostgreSQL. Un pooler de connexion permet de maintenir ouvertes des sessions entre lui-même et le serveur, ce qui rend plus rapide l'ouverture de sessions depuis les clients, une application Web par exemple.
PgBouncer permet aussi de mutualiser les sessions dans le serveur, économisant ainsi des ressources. PgBouncer propose plusieurs mode de partage : par requête (default), par transaction ou par session.
Installation
PgBouncer existe sous forme de paquet. apt://pgbouncer
Configuration
PgBouncer se positionne entre la base de données postgres et le client. Il fait office de relais. Il faut déclarer les bases que l'on souhaite rendre accessibles par PgBouncer
vi /etc/pgbouncer/pgbouncer.ini
nombasepgboucner = host=127.0.0.1 dbname=nombasesurleserveur
Un fichier d'utilisateur est à mettre à jour également. Il contient la liste des utilisateurs et leurs mots de passe autorisés à accéder à pgBouncer.
vi /etc/pgbouncer/userlist.txt
"utilisateur" "motdepasse"
Note : Le pooler peut être installé sur une autre machine que l'instance PostgreSQL
Démarrage
Nous avons configuré notre pgBouncer. Il faut maintenant le démarrer.
/etc/init.d/pgbouncer start
Pour forcer le démarrage du pgBouncer au lancement de la machine passer la valeur start = 1
dans le fichier suivant
vi /etc/default/pgbouncer
Test de la connexion
Pour tester votre connexion.
psql -h HostMachine -p 6432 -U utilisateur nombasepgboucner
Notez le port par défaut de pgBouncer est le 6432. Il peut être modifié dans le fichier /etc/pgbouncer/pgbouncer.ini
Pour aller plus loin:
- Configuration : http://pgbouncer.projects.postgresql.org/doc/config.htmli