Les connexions de chèque postgres sont actives

Les connexions de chèque postgres sont actives
PostgreSQL est l'un de mes systèmes de gestion de base de données préférés. Il est puissant, facile à travailler et utilise des requêtes SQL natives très familières.

Une fonctionnalité puissante sur PostgreSQL est la possibilité de récupérer des informations dans des requêtes SQL minimales. En effet.

Ce tutoriel vous guidera dans diverses façons d'identifier les connexions et les activités du serveur à l'aide du serveur. Cela peut vous aider à identifier les connexions, à les gérer ou à les terminer s'ils ne sont pas utiles.

Le catalogue du système PostgreSQL

Avant d'arriver à interroger PostgreSQL pour les connexions actives sur le serveur, comprenons où se produit cette collecte d'informations.

PostgreSQL contient un schéma avec des tables et des vues remplies d'informations sur les métadonnées sur d'autres objets du serveur. C'est similaire à la table d'information_schema dans MySQL.

Le schéma du catalogue système vous permet de recueillir des informations sur le système, y compris les processus système, les index, l'accès à la table, la méthode d'accès aux données, et bien d'autres.

Comme le catalogue du système est massif et contient des charges et des tas d'informations, nous ne pouvons pas les couvrir dans un seul article. Cependant, il y a un tableau qui nous intéresse: le PG_STAT_ACTIVITY.

Ce tableau montre un journal des connexions établie au serveur et à leurs données correspondantes, à la base de données connectée, au PID de son processus équivalent, et bien plus encore.

Le pg_stat_activité

Les informations que nous pouvons recueillir à partir du tableau PG_STAT_ACTIVITY comprennent les éléments suivants

  • datid - Affiche l'OID de la base de données à laquelle la connexion s'est connectée.
  • datname - Le nom de la connexion de la base de données.
  • piquer - Processus ID de la connexion.
  • usyysid - OID de l'utilisateur connecté.
  • Nom d'utilisation - Le nom de l'utilisateur connecté.
  • Nom de l'application - Le nom de l'application connecté dans une session spécifique
  • client_addr - Adresse IP du client associé à une connexion spécifique.
  • client_hostname - Le nom d'hôte du client d'une connexion spécifique.
  • client_port - Cela montre le numéro de port TCP utilisé pour se connecter au serveur par un client défini.
  • backend_start - Lorsque le processus démarré, il correspond au moment où un client connecté au serveur.
  • query_stat - L'heure à laquelle la requête en cours d'exécution a commencé. S'il n'y a pas de requête active, elle montre la requête_stat de la requête précédente.
  • État - état actuel de la connexion. Cela peut être inactif, actif, handicapé, inactif dans une transaction, une transaction inactive (abandonnée) et un appel de fonction FastPath.
  • Mettre en doute - montre la requête la plus récente de la connexion.
  • En attendant - vrai ou faux si une connexion attend un verrouillage.

Avec ces informations, nous pouvons désormais interroger des informations détaillées sur les connexions actives dans le serveur.

Comment interroger les connexions actives

Pour interroger pour les connexions actives, nous commençons par vous connecter au serveur. Si vous utilisez l'installation par défaut de postgresql, utilisez PSQL avec votre nom d'utilisateur et votre mot de passe en tant que

PSQL -U Postgres -W
Mot de passe:
PSQL (13.3)

Tapez «Aide» pour obtenir de l'aide.

Commençons par rassembler toutes les informations du tableau PG_STAT_ACTIVITY. Utilisez la requête comme indiqué ci-dessous

SELECT * FROM PG_STAT_ACTIVITY;

Une fois que vous avez exécuté la requête ci-dessus, PostgreSQL videra beaucoup d'informations sur vous, dont la plupart vous pourriez ne pas avoir besoin. Pour résoudre ce problème, nous pouvons sélectionner des colonnes spécifiques comme indiqué dans la requête ci-dessous:

Sélectionnez Datname comme Database_name,
pid as process_id,
usename comme nom d'utilisateur,
Nom de l'application,
client_addr en tant qu'hôte,
client_port comme port,
État,
mettre en doute
de pg_stat_activité;

Cela ne sélectionnera que les informations nécessaires et l'organisera de manière tabulaire, comme indiqué dans la capture d'écran.

Enfin, nous pouvons filtrer où l'état n'est pas égal à actif pour collecter uniquement les connexions actives.

La requête est:

Sélectionnez Datname comme Database_name,
pid as process_id,
usename comme nom d'utilisateur,
Nom de l'application,
client_addr en tant qu'hôte,
client_port comme port,
État,
mettre en doute
de pg_stat_activité
Où l'état «inactif»;

Cela montrera une sortie similaire à celle ci-dessous:

Enfin, un moyen simple d'obtenir des informations similaires consiste à utiliser Pgadmin. Pgadmin est un puissant outil d'administration GUI pour la base de données PostgreSQL.

Une fois que vous vous connectez à Pgadmin, accédez au tableau de bord et accédez à Server_activité. Actualiser pour vous montrer toutes les connexions.

Conclusion

Ce guide a examiné comment interroger les activités de connexion de PostgreSQL en utilisant la table PG_STAT_ACTIVITY et PGADMIN.