PostgreSQL

Cómo eliminar conexiones inactivas en PostgreSQL

Cómo eliminar conexiones inactivas en PostgreSQL

El primer paso para realizar cambios o leer información de un banco de datos de PostgreSQL es establecer conexiones. Por otro lado, cada enlace generaba gastos generales utilizando procedimientos y almacenamiento. Es por eso que un dispositivo con recursos mínimos (lectura, almacenamiento, hardware) puede admitir el conjunto limitado de conexiones. Una vez que el agregado limitado ha ido mucho más allá de un punto, debería continuar lanzando errores o negando conexiones. Dentro de PostgreSQL.conf, PostgreSQL está haciendo un trabajo decente al limitar los enlaces. En este tutorial, veremos las diferentes formas de estados que pueden tener los enlaces de PostgreSQL. Le mostraremos cómo determinar si el enlace está activo o ha estado inactivo durante mucho tiempo, en cuyo caso se puede desconectar para liberar enlaces y recursos.

Conectar al servidor:

Al principio, asegúrese de que pgAdmin4 haya sido completamente funcional instalado en su sistema informático. Ábrelo desde tus aplicaciones. Tienes que conectarlo con el localhost proporcionando una contraseña.

Después de la conectividad con root localhost, conéctelo con el servidor PostgreSQL. Escriba la contraseña para que el usuario de PostgreSQL 13 'Postgres se conecte. Toque el botón Aceptar para continuar.

Ahora está conectado al servidor PostgreSQL 13. Puede ver una lista de bases de datos que residen en el servidor como se muestra en la imagen adjunta a continuación. La base de datos de Postgres es la base de datos predeterminada 'creada en el momento de la instalación de PostgreSQL, mientras que la base de datos de' prueba 'ha sido creada por un usuario después de la instalación.

Estados de conexión:

Si se establece un enlace PostgreSQL, puede realizar varias acciones que resulten en transiciones de estado. Se debe tomar una decisión racional sobre si el enlace está funcionando o si se ha dejado inactivo / sin usar dependiendo del estado y la duración que ha estado en cada estado. Es importante tener en cuenta que hasta que la aplicación cierre deliberadamente la conexión, seguirá funcionando, desperdiciando recursos mucho después de que el cliente se desconecte. Existen 4 estados potenciales para una conexión:

Identifique los estados de conexión:

Las tablas del catálogo de PostgreSQL proporcionan una vista incorporada 'pg_stat_activity' para verificar las estadísticas sobre lo que hace un enlace o cuánto tiempo ha estado en esta condición. Para verificar todas las estadísticas con respecto a cada base de datos y cada estado de conexión, abra la herramienta de consulta y ejecute la siguiente consulta:

>> SELECCIONAR * DE pg_stat_activity;

La consulta se ha implementado de forma fructífera y se ha mostrado la nota de cumplimiento.

Cuando verifique su lado de salida de datos, encontrará una tabla con varias columnas, como se muestra a continuación. Puede comprobar los estados de las conexiones comprobando los valores del campo 'estado'.

Para simplificar la salida y tener una idea clara de las conexiones, sus estados, los usuarios y los servidores en esos estados, debe ejecutar la consulta modificada a continuación en la herramienta de consulta. Esta consulta solo muestra los 5 campos de registros para conexiones y datos particulares sobre ellos. La columna 'pid' significa id de proceso. La columna 'estado' contiene los estados de los procesos. La columna 'usename' identifica al usuario que ha estado trabajando en el proceso en particular. La columna 'datname' especifica el nombre de la base de datos en la que se ha estado ejecutando la transacción. La columna 'datid' significa id de base de datos.

>> SELECT pid, state, usename datname, datid, de pg_stat_activity;

La salida tiene un total de 8 procesos registrados. La columna 'estado' muestra que solo hay 3 procesos funcionando en este momento. Uno se encuentra en la base de datos predeterminada 'Postgres y los otros dos en la base de datos' prueba '. Al mismo tiempo, el 'usuario de Postgres ha estado realizando estos procesos.

Identifique las conexiones inactivas:

El "estado" parece ser el único valor que buscamos dentro de los resultados mencionados anteriormente. Usaremos esta información para determinar qué procesos o consultas se encuentran en qué estados y luego profundizar más. Podemos reducir los detalles que estamos buscando refinando la consulta, lo que nos permite preparar una intervención en esa conexión específica. Podríamos hacer esto eligiendo solo los PID inactivos usando la cláusula WHERE y los estados para esos PID. También debemos realizar un seguimiento de cuánto tiempo ha estado inactivo el enlace y asegurarnos de que no tengamos enlaces desatendidos que desperdicien nuestros recursos. Como resultado, usaremos el comando reformulado a continuación para mostrar solo los registros relevantes para los procesos que actualmente están inactivos:

>> SELECCIONE pid, usename, usesysid, datid, datname, application_name, backend_start, state_change, state FROM pg_stat_activity WHERE state = 'idle';

La consulta ha obtenido solo 2 registros de datos donde el estado estaba 'inactivo' usando la cláusula WHERE. El resultado muestra los 2 procesos inactivos con cierta información sobre ellos.

Elimina una conexión inactiva:

Después de la identificación de conexiones inactivas, ahora es el momento de matarlas. Una vez que hayamos reducido el proceso, ya sea en estado de espera o inactivo durante mucho más tiempo, podríamos usar el comando simple para terminar fácilmente el mecanismo de back-end sin interrumpir las actividades del servidor. Tenemos que proporcionar el 'id' del proceso dentro de la consulta en una función de terminación.

>> SELECCIONAR pg_terminate_backend (7408);

El proceso ha sido magníficamente asesinado.

Ahora verifique las conexiones inactivas restantes de la consulta adjunta a continuación.

>> SELECCIONE datid, usename, datname, pid, state FROM pg_stat_activity DONDE state = 'idle';

La salida muestra solo 1 proceso restante, que está inactivo.

Conclusión:

Asegúrese de no perderse ningún paso para eliminar las conexiones inactivas de la base de datos PostgreSQL de manera eficiente.

Agregue gestos del mouse a Windows 10 con estas herramientas gratuitas
En los últimos años, las computadoras y los sistemas operativos han evolucionado enormemente. Hubo un momento en que los usuarios tenían que usar coma...
Controle y administre el movimiento del mouse entre múltiples monitores en Windows 10
Administrador de mouse de doble pantalla le permite controlar y configurar el movimiento del mouse entre varios monitores, al ralentizar sus movimient...
WinMouse le permite personalizar y mejorar el movimiento del puntero del mouse en una PC con Windows
Si desea mejorar las funciones predeterminadas del puntero del mouse, use el software gratuito WinMouse. Agrega más funciones para ayudarlo a aprovech...