Las conexiones de comprobación de Postgres están activas

Las conexiones de comprobación de Postgres están activas
PostgreSQL es uno de mis sistemas de gestión de bases de datos favoritos. Es poderoso, fácil de trabajar y utiliza consultas SQL nativas muy familiares.

Una característica poderosa sobre PostgreSQL es la capacidad de obtener información en consultas SQL mínimas. Esto se debe a que tiene esquemas y tablas que están bien organizadas y reservadas para información específica, incluida la actividad del servidor de monitoreo.

Este tutorial lo guiará a través de varias formas de identificar conexiones y actividades del servidor utilizando el servidor. Esto puede ayudarlo a identificar las conexiones, administrarlas o terminarlas si no son útiles.

El catálogo del sistema PostgreSQL

Antes de llegar a consultar PostgreSQL para conexiones activas en el servidor, comprendamos dónde ocurre esta recopilación de información.

PostgreSQL contiene un esquema con tablas y vistas pobladas con información de metadatos sobre otros objetos en el servidor. Que es similar a la tabla de información_schema en mysql.

El esquema del catálogo del sistema le permite recopilar información sobre el sistema, incluidos los procesos del sistema, los índices, el acceso a la tabla, el método de acceso a datos y muchos más.

Como el catálogo del sistema es masivo y contiene cargas y mucha información, no podemos cubrirlo en un artículo. Sin embargo, hay una tabla que nos interesa: el PG_STAT_ACTIVITY.

Esta tabla muestra un registro de conexiones establecidas en el servidor y sus datos correspondientes, la base de datos conectada a la PID de su proceso equivalente y mucho más.

El pg_stat_activity

La información que podemos recopilar de la tabla PG_stat_Activity incluye la siguiente

  • hata - Muestra la OID de la base de datos a la que se ha conectado la conexión.
  • nombre de nombre - El nombre de la conexión de la base de datos.
  • pid - ID de procesos de la conexión.
  • UssySid - OID del usuario inició sesión.
  • usa el nombre - El nombre del usuario inició sesión.
  • Nombre de la aplicación - El nombre de la aplicación conectado en una sesión específica
  • client_addr - Dirección IP del cliente asociado con una conexión específica.
  • client_hostname - El nombre de host del cliente de una conexión específica.
  • Client_port - Esto muestra el número de puerto TCP utilizado para conectarse al servidor por un cliente establecido.
  • backend_start - Cuando el proceso se inició, corresponde a la hora en que un cliente se conecta al servidor.
  • Query_stat - El momento en que comenzó la consulta actualmente en ejecución. Si no hay una consulta activa, muestra la consulta_stat de la consulta anterior.
  • estado - estado actual de la conexión. Esto puede ser inactivo, activo, deshabilitado, inactivo en una transacción, inactividad en transacción (abortada) y llamada de función FastPath.
  • Consulta - muestra la consulta más reciente de la conexión.
  • Espera - Verdadero o falso si una conexión está esperando un bloqueo.

Con esa información, ahora podemos consultar información detallada sobre conexiones activas en el servidor.

Cómo consultar conexiones activas

Para consultar para conexiones activas, comenzamos iniciando sesión en el servidor. Si está utilizando la instalación predeterminada de PostgreSQL, use PSQL con su nombre de usuario y contraseña como

PSQL -U Postgres -W
Contraseña:
PSQL (13.3)

Escriba "ayuda" para obtener ayuda.

Comencemos por recopilar toda la información de la tabla PG_STAT_ACTIVITY. Use la consulta como se muestra a continuación

seleccionar * de PG_STAT_ACTIVIA;

Una vez que ejecute la consulta anterior, PostgreSQL le arrojará mucha información, la mayoría de los cuales es posible que no necesite. Para resolver esto, podemos seleccionar columnas específicas como se muestra en la consulta a continuación:

Seleccione DatName como Database_Name,
PID como process_id,
Usename como nombre de usuario,
Nombre de la aplicación,
client_addr como anfitrión,
client_port como puerto,
estado,
consulta
de pg_stat_activity;

Esto seleccionará solo la información necesaria y la organizará de manera tabular, como se muestra en la captura de pantalla.

Finalmente, podemos filtrar donde el estado no es igual a activo para recopilar solo las conexiones activas.

La consulta para eso es:

Seleccione DatName como Database_Name,
PID como process_id,
Usename como nombre de usuario,
Nombre de la aplicación,
client_addr como anfitrión,
client_port como puerto,
estado,
consulta
de PG_STAT_ACTIVIA
Donde el estado 'inactivo';

Esto mostrará una salida similar a la que se muestra a continuación:

Finalmente, una forma simple de obtener información similar es usar pgadmin. Pgadmin es una poderosa herramienta de administración de GUI para la base de datos PostgreSQL.

Una vez que inicie sesión en pgadmin, navegue al tablero y vaya a server_activity. Refrescar para mostrarle todas las conexiones.

Conclusión

Esta guía analizó cómo consultar las actividades de conexión de PostgreSQL utilizando la tabla PG_STAT_ACTIVITY y PGADmin.