Usage : pgbouncer commande
Synopsis
pgbouncer [-d][-R][-v][-u user] <pgbouncer.ini>
pgbouncer -V|-h
Sous Windows, les options sont :
pgbouncer.exe [-v][-u user] <pgbouncer.ini>
pgbouncer.exe -V|-h
Options supplémentaires pour la configuration d’un service Windows :
pgbouncer.exe --regservice <pgbouncer.ini>
pgbouncer.exe --unregservice <pgbouncer.ini>
Description
pgbouncer est un pooler de connexions PostgreSQL. Toute application cliente peut se connecter à pgbouncer comme s’il était un serveur PostgreSQL, et pgbouncer établira une connexion vers le serveur réel, ou réutilisera l’une de ses connexions existantes.
L’objectif de pgbouncer est de réduire l’impact sur les performances lié à l’ouverture de nouvelles connexions vers PostgreSQL.
Afin de ne pas compromettre la sémantique transactionnelle pour le pooling de connexions, pgbouncer prend en charge plusieurs types de pooling lors de la rotation des connexions :
- Pooling de sessions
Méthode la moins intrusive. Lorsqu’un client se connecte, une connexion serveur lui est attribuée pour toute la durée de sa connexion. Lorsque le client se déconnecte, la connexion serveur est remise dans le pool. Il s’agit de la méthode par défaut.
- Pooling de transactions
Une connexion serveur est attribuée à un client uniquement pendant une transaction. Lorsque PgBouncer détecte la fin de la transaction, la connexion serveur sera remise dans le pool.
- Pooling d’instructions
Méthode la plus agressive. La connexion au serveur sera immédiatement remise dans le pool après la fin d’une requête. Les transactions multi-instructions sont interdites en ce mode, car elles seraient rompues.
L’interface d’administration de pgbouncer propose de nouvelles commandes SHOW, disponibles lorsque l’on se connecte à une base de données « virtuelle » spéciale nommée pgbouncer.
Démarrage rapide
Configuration et utilisation de base se déroulent comme suit.
Créez un fichier pgbouncer.ini. Détails dans pgbouncer(5). Exemple simple :
[databases] template1 = host=localhost port=5432 dbname=template1 [pgbouncer] listen_port = 6432 listen_addr = localhost auth_type = md5 auth_file = userlist.txt logfile = pgbouncer.log pidfile = pgbouncer.pid admin_users = someuserCréez un fichier
userlist.txtcontenant les utilisateurs autorisés :"someuser" "same_password_as_in_server"Lancez pgbouncer :
$ pgbouncer -d pgbouncer.iniFaites que votre application (ou le client psql) se connecte à pgbouncer au lieu de se connecter directement au serveur PostgreSQL :
$ psql -p 6432 -U someuser template1Gérez pgbouncer en vous connectant à la base de données d’administration spéciale pgbouncer et en émettant
SHOW HELP;pour commencer :$ psql -p 6432 -U someuser pgbouncer pgbouncer=# SHOW HELP; NOTICE: Console usage DETAIL: SHOW [HELP|CONFIG|DATABASES|FDS|POOLS|CLIENTS|SERVERS|SOCKETS|LISTS|VERSION|...] SET key = arg RELOAD PAUSE SUSPEND RESUME SHUTDOWN [...]Si vous avez modifié le fichier pgbouncer.ini, vous pouvez le recharger à l’aide de :
pgbouncer=# RELOAD;
Options de ligne de commande
-d,--daemon- Exécuter en arrière-plan. Sans cette option, le processus s’exécute en premier plan.
In daemon mode, setting
pidfileas well aslogfileorsyslogis required. No log messages will be written to stderr after going into the background.Note: Does not work on Windows; pgbouncer need to run as service there.
-R,--reboot- OBSOLÈTE : au lieu de cette option, utilisez un redémarrage progressif avec plusieurs processus pgbouncer écoutant sur le même port en utilisant so_reuseport
Effectuez un redémarrage en ligne. Cela signifie vous connecter au processus en cours d’exécution, charger les sockets ouverts depuis celui-ci, puis les utiliser. Si aucun processus actif n’est présent, démarrez normalement.
Note : Fonctionne uniquement si le système d’exploitation prend en charge les sockets Unix et si
unix_socket_dirn’est pas désactivé dans la configuration. Ne fonctionne pas sous Windows. Ne fonctionne pas avec les connexions TLS, celles-ci sont perdues. -uUSERNAME,--user=USERNAME- Passer à l’utilisateur spécifié au démarrage.
-v,--verbose- Augmenter le niveau de détail. Peut être utilisé plusieurs fois.
-q,--quiet- Soyez silencieux : ne pas journaliser sur stderr. Cela n’affecte pas le niveau de verbosité du journal, uniquement le fait que stderr ne doit pas être utilisé. À utiliser dans les scripts init.d.
-V,--version- Affiche la version.
-h,--help- Affiche l’aide courte.
--regservice- Win32 : inscrire PgBouncer pour s’exécuter en tant que service Windows. La valeur du paramètre de configuration service_name est utilisée comme nom d’enregistrement.
--unregservice- Win32 : Désinscrire le service Windows.
Console d’administration
La console est disponible en se connectant normalement à la base de données pgbouncer :
$ psql -p 6432 pgbouncer
Seuls les utilisateurs listés dans les paramètres de configuration admin_users ou stats_users peuvent se connecter à la console. (À moins que auth_type=any, auquel cas tout utilisateur est autorisé à se connecter en tant que stats_user.)
En outre, le nom d’utilisateur pgbouncer est autorisé à se connecter sans mot de passe, si la connexion est établie via le socket Unix et que l’utilisateur Unix du client est identique à celui du processus en cours d’exécution.
La console d’administration ne prend actuellement en charge que le protocole de requête simple. Certains pilotes utilisent le protocole de requête étendu pour toutes les commandes ; ces pilotes ne fonctionneront pas dans ce cas.
Afficher les commandes
Les commandes SHOW produisent des informations. Chaque commande est décrite ci-dessous.
MONTRER STATS
Affiche les statistiques. Dans cette commande et les commandes apparentées, les valeurs totales correspondent à partir du démarrage du processus, les moyennes sont mises à jour toutes les stats_period.
- base de données
- Les statistiques sont présentées par base de données.
- total_xact_count
- Nombre total de transactions SQL regroupées par pgbouncer.
- total_query_count
- Nombre total de commandes SQL regroupées par pgbouncer.
- total_server_assignment_count
- Nombre total d’affectations d’un serveur à un client
- total_received
- Volume total en octets du trafic réseau reçu par pgbouncer.
- total_sent
- Volume total en octets de trafic réseau envoyé par pgbouncer.
- total_xact_time
- Nombre total de microsecondes passées par pgbouncer lorsqu’il est connecté à PostgreSQL dans une transaction, qu’elles soient en attente ou en cours d’exécution.
- total_query_time
- Nombre total de microsecondes passées par pgbouncer lorsqu’il est activement connecté à PostgreSQL, en exécutant des requêtes.
- total_wait_time
- Temps passé par les clients en attente d’un serveur, en microsecondes. Mis à jour lorsque la connexion d’un client est associée à une connexion serveur.
- total_client_parse_count
- Nombre total de requêtes préparées créées par les clients. N’est applicable que dans le mode de suivi des requêtes préparées nommées, voir
max_prepared_statements. - total_server_parse_count
- Nombre total d’instructions préparées créées par pgbouncer sur un serveur. N’est applicable que dans le mode de suivi des instructions préparées nommées, voir
max_prepared_statements. - total_bind_count
- Nombre total de requêtes préparées lues par les clients et transférées à PostgreSQL par pgbouncer. N’est applicable que dans le mode de suivi des requêtes préparées nommées, voir
max_prepared_statements. - avg_xact_count
- Nombre moyen de transactions par seconde durant la dernière période de statistiques.
- avg_query_count
- Nombre moyen de requêtes par seconde durant la dernière période de statistiques.
- avg_server_assignment_count
- Nombre moyen de fois où un serveur est affecté à un client par seconde pendant la dernière période de statistiques.
- avg_recv
- Octets reçus en moyenne (par les clients) par seconde.
- avg_sent
- Nombre moyen d’octets envoyés (aux clients) par seconde.
- avg_xact_time
- Durée moyenne d’une transaction, en microsecondes.
- avg_query_time
- Durée moyenne d’exécution d’une requête, en microsecondes.
- avg_wait_time
- Temps passé par les clients en attente d’un serveur, en microsecondes (moyenne des temps d’attente des clients affectés à un backend pendant le
stats_periodactuel). - avg_client_parse_count
- Nombre moyen de requêtes préparées créées par les clients. N’est applicable que dans le mode de suivi des requêtes préparées nommées, voir
max_prepared_statements. - avg_server_parse_count
- Nombre moyen de requêtes préparées créées par pgbouncer sur un serveur. N’est applicable que dans le mode de suivi des requêtes préparées nommées, voir
max_prepared_statements. - avg_bind_count
- Nombre moyen de requêtes préparées lues par les clients et transférées à PostgreSQL par pgbouncer. N’est applicable que dans le mode de suivi des requêtes préparées nommées, voir
max_prepared_statements.
SHOW STATS_TOTALS
Sous-ensemble de SHOW STATS affichant les valeurs totales (total_).
SHOW STATS_AVERAGES
Sous-ensemble de SHOW STATS affichant les valeurs moyennes (avg_).
SHOW TOTALS
Comme SHOW STATS, mais agrégé pour toutes les bases de données.
SHOW SERVEURS
- type
- S, pour serveur.
- user
- Nom d’utilisateur que pgbouncer utilise pour se connecter au serveur.
- base
- Nom de la base de données.
- réplication
- Si la connexion au serveur utilise la réplication. Peut être none, logical ou physical.
- state
- État de la connexion du serveur PgBouncer, l’une des valeurs suivantes : active, idle, used, tested, new, active_cancel, being_canceled.
- addr
- Adresse IP du serveur PostgreSQL.
- port
- Port du serveur PostgreSQL.
- local_addr
- Adresse de départ de la connexion sur la machine locale.
- local_port
- Port de départ pour les connexions sur la machine locale.
- connect_time
- Date de la connexion.
- request_time
- Date de la dernière requête émise.
- wait
- Non utilisé pour les connexions serveur.
- wait_us
- Non utilisé pour les connexions serveur.
- close_needed
- 1 si la connexion sera fermée dès que possible, car un rechargement du fichier de configuration ou une mise à jour DNS a modifié les informations de connexion ou que RECONNECT a été émis.
- ptr
- Adresse de l’objet interne pour cette connexion.
- lien
- Adresse de la connexion client avec laquelle le serveur est apparié.
- remote_pid
- PID du processus serveur backend. En cas de connexion via un socket Unix et si le système d’exploitation prend en charge la récupération des informations sur le PID, il s’agit du PID système. Sinon, il est extrait du paquet d’annulation envoyé par le serveur, qui doit correspondre au PID si le serveur est PostgreSQL, mais il s’agit d’un nombre aléatoire si le serveur est un autre PgBouncer.
- tls
- Chaîne contenant les informations de connexion TLS, ou chaîne vide si TLS n’est pas utilisé.
- application_name
- Chaîne de caractères contenant le
application_namedéfini sur la connexion client liée, ou vide si ce paramètre n’est pas défini, ou s’il n’existe pas de connexion liée. - instructions préparées
- Le nombre d’instructions préparées effectuées sur le serveur. Ce nombre est limité par le paramètre
max_prepared_statements. - id
- ID unique du serveur.
MONTRER LES CLIENTS
- type
- C, pour client.
- user
- Utilisateur du client connecté.
- base
- Nom de la base de données.
- réplication
- Si la connexion client utilise la réplication. Peut être none, logical ou physical.
- state
- État de la connexion client, l’une des valeurs suivantes : active (connexions clients liées à des connexions serveur), idle (connexions clients sans requête en attente de traitement), waiting, active_cancel_req ou waiting_cancel_req.
- addr
- Adresse IP du client.
- port
- Port source du client.
- local_addr
- Adresse de bout de connexion sur la machine locale.
- local_port
- Port de connexion sur la machine locale.
- connect_time
- Horodatage de l’instant de connexion.
- request_time
- Horodatage de la dernière requête du client.
- wait
- Temps d’attente actuel en secondes.
- wait_us
- Partie en microsecondes du temps d’attente actuel.
- close_needed
- non utilisé pour les clients
- ptr
- Adresse de l’objet interne pour cette connexion.
- lien
- Adresse de la connexion serveur avec laquelle le client est apparié.
- remote_pid
- Identifiant de processus, au cas où le client se connecterait via une socket Unix et que le système d’exploitation le permette.
- tls
- Chaîne contenant les informations de connexion TLS, ou chaîne vide si TLS n’est pas utilisé.
- application_name
- Chaîne de caractères contenant le
application_namedéfini par le client pour cette connexion, ou vide si ce champ n’a pas été défini. - prepared_statements
- Nombre de requêtes préparées par le client
- id
- ID unique du client.
SHOW POOLS
Une nouvelle entrée de pool est créée pour chaque couple (base de données, utilisateur).
- base
- Nom de la base de données.
- user
- Nom d’utilisateur.
- cl_active
- Connexions clientes qui sont soit associées à des connexions serveur, soit inactives sans requête en attente de traitement.
- cl_waiting
- Connexions client qui ont envoyé des requêtes mais n’ont pas encore obtenu de connexion serveur.
- cl_active_cancel_req
- Connexions clientes ayant transmis des demandes d’annulation de requête au serveur et en attente de la réponse du serveur.
- cl_waiting_cancel_req
- Connexions clientes qui n’ont pas encore transmis les demandes d’annulation de requête au serveur.
- sv_active
- Connexions serveur liées à un client.
- sv_active_cancel
- Connexions serveur en cours d’envoi d’une demande d’annulation.
- sv_being_canceled
- Serveurs qui pourraient normalement devenir inactifs mais qui attendent de le devenir jusqu’à ce que toutes les demandes d’annulation en cours aient été traitées, celles-ci ayant été envoyées pour annuler une requête sur ce serveur.
- sv_idle
- Connexions serveur inutilisées et immédiatement disponibles pour les requêtes clients.
- sv_used
- Connexions serveur qui ont été inactives pendant plus de
server_check_delay, donc elles nécessitentserver_check_querypour pouvoir être utilisées à nouveau. - sv_tested
- Connexions serveur en cours d’exécution soit
server_reset_query, soitserver_check_query. - sv_login
- Connexions serveur actuellement en cours de connexion.
- maxwait
- Temps d’attente, en secondes, du premier (plus ancien) client dans la file d’attente. Si cette valeur commence à augmenter, c’est que le pool de serveurs actuel ne traite pas les requêtes assez rapidement. La cause peut être soit un serveur surchargé, soit une valeur de pool_size trop faible.
- maxwait_us
- Partie en microsecondes du temps d’attente maximal.
- pool_mode
- Le mode de mise en pool utilisé.
- load_balance_hosts
- Le paramètre load_balance_hosts utilisé si l’hôte du pool contient une liste séparée par des virgules.
SHOW PEER_POOLS
Une nouvelle entrée peer_pool est créée pour chaque pair configuré.
- base de données
- ID de l’entrée pair configurée.
- cl_active_cancel_req
- Connexions clientes ayant transmis des demandes d’annulation de requête au serveur et en attente de la réponse du serveur.
- cl_waiting_cancel_req
- Connexions clientes qui n’ont pas encore transmis les demandes d’annulation de requête au serveur.
- sv_active_cancel
- Connexions serveur en cours d’envoi d’une demande d’annulation.
- sv_login
- Connexions serveur actuellement en cours de connexion.
MONTRER LES LISTES
Affiche les informations internes suivantes, en colonnes (et non en lignes) :
- bases de données
- Nombre de bases de données.
- utilisateurs
- Nombre d’utilisateurs.
- pools
- Nombre de pools.
- free_clients
- Nombre de clients libres. Ce sont des clients déconnectés, mais PgBouncer conserve en mémoire la mémoire allouée pour eux afin de la réutiliser ultérieurement pour de nouveaux clients, afin d’éviter des allocations.
- used_clients
- Nombre de clients utilisés.
- login_clients
- Nombre de clients en état login.
- free_servers
- Nombre de serveurs libres. Ce sont des serveurs déconnectés, mais PgBouncer conserve en mémoire la mémoire allouée pour eux afin de la réutiliser ultérieurement pour des serveurs futurs, afin d’éviter de nouvelles allocations.
- used_servers
- Nombre de serveurs utilisés.
- dns_names
- Nombre de noms DNS dans le cache.
- dns_zones
- Nombre de zones DNS en cache.
- dns_queries
- Nombre de requêtes DNS en cours.
- dns_pending
- non utilisé
MONTRER UTILISATEURS
- name
- Le nom d’utilisateur
- pool_size
- La taille de pool substituée par l’utilisateur. Peut être NULL si non définie.
- reserve_pool_size
- La taille de réserve personnalisée pour l’utilisateur, ou NULL si non définie.
- pool_mode
- Le mode de pool défini par l’utilisateur, ou NULL si non défini.
- max_user_connections
- Paramètre max_user_connections de l’utilisateur. Si ce paramètre n’est pas défini pour cet utilisateur spécifique, la valeur par défaut sera affichée.
- current_connections
- Nombre actuel de connexions au serveur que cet utilisateur a ouvert vers tous les serveurs.
- max_user_client_connections
- Paramètre max_user_client_connections de l’utilisateur. Si ce paramètre n’est pas défini pour cet utilisateur spécifique, la valeur par défaut sera affichée.
- current_client_connections
- Nombre actuel de connexions clients ouvertes par cet utilisateur vers PgBouncer.
SHOW DATABASES
- name
- Nom de l’entrée de base de données configurée.
- host
- Hôte auquel PgBouncer se connecte.
- port
- Port auquel PgBouncer se connecte.
- base de données
- Nom réel de la base de données vers laquelle PgBouncer se connecte.
- force_user
- Lorsque l’utilisateur est spécifié dans la chaîne de connexion, la connexion entre PgBouncer et PostgreSQL est forcée à l’utilisateur indiqué, quel que soit l’utilisateur client.
- pool_size
- Nombre maximal de connexions vers le serveur.
- min_pool_size
- Nombre minimum de connexions vers le serveur.
- reserve_pool_size
- Nombre maximal de connexions supplémentaires pour cette base de données.
- server_lifetime
- Durée maximale de vie d’une connexion serveur pour cette base de données
- pool_mode
- Le mode de poolage substitut de la base de données, ou NULL si le mode par défaut doit être utilisé à la place.
- load_balance_hosts
- L’option load_balance_hosts de la base de données si l’hôte contient une liste séparée par des virgules.
- max_connections
- Nombre maximal de connexions serveur autorisées pour cette base de données, tel que défini par max_db_connections, soit globalement, soit par base de données.
- current_connections
- Nombre actuel de connexions serveur pour cette base de données.
- max_client_connections
- Nombre maximal de connexions clients autorisées pour cette instance de PgBouncer, tel que défini par max_db_client_connections par base de données.
- current_client_connections
- Nombre actuel de connexions clients pour cette base de données.
- en pause
- 1 si cette base de données est actuellement en pause, sinon 0.
- désactivé
- 1 si cette base de données est actuellement désactivée, sinon 0.
MONTRER LES PEERS
- peer_id
- Identifiant de l’entrée pair configurée.
- host
- Hôte auquel PgBouncer se connecte.
- port
- Port auquel PgBouncer se connecte.
- pool_size
- Nombre maximal de connexions serveur pouvant être établies vers ce pair
SHOW FDS
Commande interne – affiche la liste des descripteurs de fichiers en cours d’utilisation avec leur état interne associé.
Lorsque l’utilisateur connecté porte le nom « pgbouncer », se connecte via une socket Unix et possède le même UID que le processus en cours d’exécution, les descripteurs de fichiers réels sont transmis à travers la connexion. Ce mécanisme est utilisé pour effectuer un redémarrage en ligne. Note : Cette fonctionnalité ne fonctionne pas sous Windows.
Cette commande bloque également la boucle d’événements interne, elle ne doit donc pas être utilisée pendant que PgBouncer est en cours d’utilisation.
- fd
- Valeur numérique du descripteur de fichier.
- tâche
- L’un des éléments suivants : pooler, client ou server.
utilisateur : Utilisateur de la connexion utilisant le descripteur de fichier (FD).
- base de données
- Base de données de la connexion utilisant le descripteur de fichier (FD).
- addr
- Adresse IP de la connexion utilisant le descripteur de fichier (FD), unix si un socket Unix est utilisé.
- port
- Port utilisé par la connexion utilisant le descripteur de fichier (FD).
- annuler
- Clé d’annulation pour cette connexion.
- lien
- descripteur de fichier correspondant au serveur/client. NULL si inactif.
SHOW SOCKETS, SHOW ACTIVE_SOCKETS
Affiche des informations de bas niveau sur les sockets ou uniquement les sockets actifs. Cela inclut les informations affichées sous SHOW CLIENTS et SHOW SERVERS, ainsi que d’autres informations de niveau plus bas.
SHOW CONFIG
Affiche les paramètres de configuration actuels, un par ligne, avec les colonnes suivantes :
- clé
- Nom de la variable de configuration
- valeur
- Valeur de configuration
- default
- Valeur par défaut de la configuration
- modifiable
- Soit yes soit no, indique si la variable peut être modifiée pendant l’exécution. Si no, la variable ne peut être modifiée qu’au démarrage. Utilisez SET pour modifier une variable en cours d’exécution.
SHOW MEM
Affiche des informations de bas niveau sur les tailles actuelles des différentes allocations mémoire internes. Les informations présentées sont sujettes à modification.
SHOW DNS_HOSTS
Afficher les noms d’hôte dans le cache DNS.
- hostname
- Nom d’hôte.
- ttl
- Nombre de secondes avant la prochaine recherche.
- addrs
- Liste de adresses séparées par des virgules.
SHOW DNS_ZONES
Affiche les zones DNS en mémoire cache.
- zonename
- Nom de la zone.
- serial
- Numéro de série actuel.
- count
- Noms d’hôtes appartenant à cette zone.
SHOW VERSION
Affiche la chaîne de version de PgBouncer.
MONTRER ÉTAT
Affiche les paramètres d’état de PgBouncer. Les états actuels sont : active, paused et suspended.
Commandes de contrôle du processus
PAUSE [db]
PgBouncer tente de se déconnecter de tous les serveurs. La déconnexion de chaque connexion serveur attend que cette connexion serveur soit libérée selon le mode de pooling du pool serveur (en mode pooling de transactions, la transaction doit être terminée ; en mode statement, l’instruction doit être terminée ; en mode pooling de sessions, le client doit se déconnecter). La commande ne retourne pas avant que toutes les connexions serveur n’aient été déconnectées. À utiliser lors d’un redémarrage de la base de données.
Si le nom de la base de données est spécifié, seule cette base de données sera mise en pause.
Les nouvelles connexions clients vers une base de données en pause resteront en attente jusqu’à l’appel de RESUME.
DÉSACTIVER db
Refuser toutes les nouvelles connexions clients sur la base de données donnée.
ACTIVER db
Autoriser de nouvelles connexions clients après une commande précédente DISABLE.
RECONNECT [db]
Ferme chaque connexion serveur ouverte pour la base de données donnée, ou pour toutes les bases de données, après sa libération (selon le mode de mise en pool), même si sa durée de vie n’est pas encore écoulée. De nouvelles connexions serveur peuvent être établies immédiatement et se connecteront selon les paramètres de taille du pool.
Cette commande est utile lorsque la configuration de connexion au serveur a changé, par exemple pour effectuer un basculement progressif vers un nouveau serveur. Elle n’est pas nécessaire lorsqu’une chaîne de connexion dans le fichier pgbouncer.ini a été modifiée et rechargée (voir RELOAD) ou lorsque la résolution DNS a changé, car dans ces cas, la commande équivalente sera exécutée automatiquement. Cette commande n’est nécessaire que si quelque chose en aval de PgBouncer route les connexions.
Après l’exécution de cette commande, une période prolongée peut s’écouler durant laquelle certaines connexions serveur sont dirigées vers une ancienne destination et d’autres vers une nouvelle destination. Cette situation n’est probablement pertinente que lors du basculement du trafic en lecture seule entre des réplicas en lecture seule, ou lors du basculement entre les nœuds d’une configuration de réplication multimaster. Si toutes les connexions doivent être redirigées simultanément, PAUSE est recommandé à la place. Pour fermer les connexions serveur sans attendre (par exemple, lors d’un basculement d’urgence plutôt que d’un basculement progressif), envisagez également KILL.
KILL [db]
Déconnecter immédiatement toutes les connexions clients et serveurs pour la base de données indiquée ou pour toutes les bases de données, en excluant la base de données d’administration.
Les nouvelles connexions clients vers une base de données arrêtée resteront en attente jusqu’à l’appel de RESUME.
KILL_CLIENT id
Tuer immédiatement la connexion client spécifiée, ainsi que toutes les connexions serveur associées à ce client. Le client à tuer est identifié par la valeur id, qui peut être obtenue à l’aide de la commande SHOW CLIENTS.
Une commande d’exemple aura une forme semblable à KILL_CLIENT 1234.
SUSPENDRE
Tous les tampons de socket sont vidés et PgBouncer cesse d’écouter les données sur ceux-ci. La commande ne retourne pas avant que tous les tampons soient vides. À utiliser lors d’un redémarrage en ligne de PgBouncer.
Les nouvelles connexions clients vers une base de données suspendue attendront jusqu’à l’appel de RESUME.
SYNTHÈSE [db]
Reprendre le travail après une commande précédente KILL, PAUSE ou SUSPEND.
ARRÊT
Le processus PgBouncer s’arrête.
SHUTDOWN WAIT_FOR_SERVERS
Arrêtez d’accepter de nouvelles connexions et effectuez l’arrêt après la libération de tous les serveurs. Cela revient essentiellement à émettre PAUSE et SHUTDOWN, sauf que cette commande arrête également l’acceptation de nouvelles connexions pendant l’attente du PAUSE, tout en déconnectant immédiatement les clients en attente d’une connexion serveur. Veuillez noter que les sockets UNIX resteront ouverts pendant l’arrêt, mais n’accepteront que les connexions à la console d’administration de PgBouncer.
SHUTDOWN WAIT_FOR_CLIENTS
Arrêtez d’accepter de nouvelles connexions et arrêtez le processus une fois que tous les clients existants se sont déconnectés. Veuillez noter que les sockets UNIX resteront ouverts pendant l’arrêt, mais n’accepteront que les connexions à la console d’administration de pgbouncer. Cette commande peut être utilisée pour effectuer un redémarrage progressif sans interruption de deux processus PgBouncer en suivant la procédure suivante :
- Faites fonctionner deux ou plusieurs processus PgBouncer sur le même port en utilisant
so_reuseport(configurer le peering est recommandé, mais non obligatoire). Pour obtenir une interruption nulle lors du redémarrage, redémarrez ces processus un par un, laissant ainsi les autres en cours d’exécution afin d’accepter les connexions pendant qu’un processus est redémarré. - Choisissez un processus à redémarrer en premier, appelons-le A.
- Exécutez
SHUTDOWN WAIT_FOR_CLIENTS(ou envoyezSIGTERM) au processus A. - Forcez tous les clients à se reconnecter. Cela peut être réalisé en attendant un certain temps jusqu’à ce que le pooler côté client provoque les reconnexions en raison de son
server_idle_timeout(ou d’une configuration similaire). Sinon, si aucun pooler côté client n’est utilisé, cela peut être fait en redémarrant les clients. Une fois que tous les clients se sont reconnectés, le processus A s’arrêtera automatiquement, car aucun client ne sera plus connecté à celui-ci. - Redémarrez le processus A.
- Répétez les étapes 3, 4 et 5 pour chacun des processus restants, un par un, jusqu’à ce que tous les processus aient été redémarrés.
RECHARGER
Le processus PgBouncer recharge ses fichiers de configuration et met à jour les paramètres modifiables. Cela inclut le fichier de configuration principal ainsi que les fichiers spécifiés par les paramètres auth_file et auth_hba_file.
PgBouncer détecte lors d’un rechargement du fichier de configuration que les paramètres de connexion d’une définition de base de données ont changé. Une connexion serveur existante vers la destination ancienne sera fermée lors de sa prochaine libération (selon le mode de regroupement), et les nouvelles connexions serveur utiliseront immédiatement les paramètres de connexion mis à jour.
WAIT_CLOSE [db]
Attendez que toutes les connexions serveur, pour la base de données spécifiée ou pour toutes les bases de données, aient quitté l’état “close_needed” (voir SHOW SERVERS). Cette commande peut être appelée après un RECONNECT ou un RELOAD pour attendre que le changement de configuration correspondant ait été pleinement activé, par exemple dans des scripts de basculement.
Autres commandes
SET key = arg
Modifie un paramètre de configuration (voir également SHOW CONFIG). Par exemple :
SET log_connections = 1;
SET server_check_query = 'select 2';
(Remarque : cette commande est exécutée sur la console d’administration de PgBouncer et définit les paramètres de PgBouncer. Une commande SET exécutée sur une autre base de données sera transmise au serveur PostgreSQL comme toute autre commande SQL.)
Signaux
- SIGHUP
- Recharger la configuration. Équivalent à exécuter la commande RELOAD sur la console d’administration.
- SIGTERM
- Arrêt sécurisé maximal. Attend que tous les clients actifs se déconnectent, mais n’accepte plus de nouvelles connexions. Cela équivaut à émettre la commande SHUTDOWN WAIT_FOR_CLIENTS depuis la console d’administration. Si ce signal est reçu alors qu’un arrêt est déjà en cours, un « arrêt immédiat » est déclenché à la place d’un « arrêt sécurisé maximal ». Dans les versions de PgBouncer antérieures à 1.23.0, ce signal provoquait un « arrêt immédiat ».
- SIGINT
- Arrêt sécurisé. Équivalent à l’envoi de SHUTDOWN WAIT_FOR_SERVERS depuis la console. Si ce signal est reçu pendant qu’un arrêt est déjà en cours, un « arrêt immédiat » est déclenché au lieu d’un « arrêt sécurisé ».
- SIGQUIT
- Arrêt immédiat. Équivalent à l’envoi de SHUTDOWN depuis la console d’administration.
- SIGUSR1
- Identique à l’envoi de PAUSE depuis la console d’administration.
- SIGUSR2
- Identique à l’envoi de RESUME depuis la console d’administration.
Paramètres Libevent
Du document officiel de Libevent :
Il est possible de désactiver la prise en charge d’epoll, kqueue, devpoll ou poll en définissant la variable d’environnement EVENT_NOEPOLL, EVENT_NOKQUEUE, EVENT_NODEVPOLL, EVENT_NOPOLL ou EVENT_NOSELECT, respectivement.
En définissant la variable d’environnement EVENT_SHOW_METHOD, libevent affiche la méthode de notification du noyau qu’il utilise.
Voir aussi
pgBouncer(5) - page de manuel des descriptions des paramètres de configuration