PostgreSQL

Como eliminar conexões ociosas no PostgreSQL

Como eliminar conexões ociosas no PostgreSQL

O primeiro passo para fazer alterações ou ler algumas informações de um banco de dados PostgreSQL é estabelecer conexões. Por outro lado, cada link gerou sobrecarga utilizando procedimento e armazenamento. É por isso que um dispositivo com recursos mínimos (leitura, armazenamento, hardware) pode suportar o agregado limitado de conexões. Uma vez que o agregado limitado foi muito além de um ponto, ele deve continuar lançando erros ou negando conexões. No PostgreSQL.conf, PostgreSQL está fazendo um trabalho decente de limitação de links. Neste tutorial, veremos as diferentes formas de estados que os links PostgreSQL podem ter. Mostraremos como determinar se o link está ativo ou inativo por um longo período, caso em que pode ser desconectado para liberar os links e recursos.

Conecte-se ao servidor:

No início, certifique-se de que o pgAdmin4 esteja totalmente funcional instalado no sistema do seu computador. Abra-o em seus aplicativos. Você deve conectá-lo ao host local, fornecendo uma senha.

Após a conectividade com o localhost raiz, conecte-o ao servidor PostgreSQL. Digite a senha do usuário do PostgreSQL 13 para que o Postgres se conecte. Toque no botão OK para continuar.

Agora você está conectado ao servidor PostgreSQL 13. Você pode ver uma lista de bancos de dados que residem no servidor, conforme apresentado na imagem anexada abaixo. O banco de dados do Postgres é o banco de dados padrão 'criado no momento da instalação do PostgreSQL, enquanto o banco de dados' teste 'foi criado por um usuário após a instalação.

Estados de conexão:

Se um link PostgreSQL for estabelecido, ele pode realizar várias ações que resultam em transições de estado. Uma decisão racional deve ser tomada sobre se o link está funcionando ou foi deixado inativo / não usado, dependendo do estado e da duração que esteve em cada estado. É importante observar que até que o aplicativo feche deliberadamente a conexão, ele continuará operando, desperdiçando recursos muito depois de o cliente ser desconectado. Existem 4 estados potenciais para uma conexão:

Identifique os estados de conexão:

As tabelas do catálogo PostgreSQL fornecem uma visão embutida 'pg_stat_activity' para verificar as estatísticas sobre o que um link faz ou quanto tempo ele está nesta condição. Para verificar todas as estatísticas sobre cada banco de dados e cada estado de conexão, abra a ferramenta de consulta e execute a consulta abaixo:

>> SELECT * FROM pg_stat_activity;

A consulta foi implementada com sucesso e a nota de realização foi mostrada.

Ao verificar o lado da saída de dados, você encontrará uma tabela com várias colunas, conforme mostrado abaixo. Você pode verificar os estados das conexões verificando os valores do campo 'estado'.

Para simplificar a saída e ter uma ideia clara das conexões, seus estados, os usuários e servidores nesses estados, você deve executar a consulta modificada abaixo na ferramenta de consulta. Esta consulta mostra apenas os 5 campos de registros para conexões e dados particulares a respeito deles. A coluna 'pid' representa o id do processo. A coluna 'estado' contém os estados dos processos. A coluna 'nome de usuário' identifica o usuário que está trabalhando no processo específico. A coluna 'datname' especificou o nome do banco de dados no qual a transação está sendo executada. A coluna 'datid' representa a id do banco de dados.

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

A saída tem um total de 8 processos registrados. A coluna 'estado' mostra que existem apenas 3 processos funcionando no momento. Um é mantido pelo banco de dados padrão 'Postgres e os outros dois são mantidos pelo banco de dados' teste '. Ao mesmo tempo, o 'usuário Postgres vem realizando esses processos.

Identifique as conexões ociosas:

O “estado” parece ser o único valor que procuramos nos resultados mencionados acima. Usaremos essas informações para determinar quais processos ou consultas estão em quais estados e depois nos aprofundaremos. Podemos reduzir os detalhes que procuramos refinando a consulta, o que nos permite preparar uma intervenção nessa conexão específica. Poderíamos fazer isso escolhendo apenas os PIDs inativos usando a cláusula WHERE e os estados para esses PIDs. Devemos também controlar há quanto tempo o link está inativo e garantir que não tenhamos nenhum link negligenciado desperdiçando nossos recursos. Como resultado, usaremos o comando reformulado abaixo para exibir apenas os registros relevantes para os processos que estão ociosos no momento:

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

A consulta buscou apenas 2 registros de dados em que o estado estava 'inativo' usando a cláusula WHERE. O resultado está mostrando os 2 processos ociosos com certas informações sobre eles.

Elimine uma conexão inativa:

Após a identificação das conexões ociosas, agora é hora de eliminá-las. Depois de reduzir o processo em um estado de espera ou inativo por muito mais tempo, poderíamos usar o comando simples para encerrar facilmente o mecanismo de back-end sem interromper as atividades do servidor. Temos que fornecer o 'id' do processo dentro da consulta em uma função de encerramento.

>> SELECT pg_terminate_backend (7408);

O processo foi magnificamente eliminado.

Agora verifique as conexões ociosas restantes da consulta anexada abaixo.

>> SELECT datid, usename, datname, pid, state FROM pg_stat_activity WHERE state = 'idle';

A saída mostra apenas 1 processo restante, que está ocioso.

Conclusão:

Certifique-se de não perder nenhuma etapa para eliminar as conexões inativas do banco de dados PostgreSQL de forma eficiente.

WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...
O botão esquerdo do mouse não funciona no Windows 10
Se você estiver usando um mouse dedicado com seu laptop ou computador desktop, mas o o botão esquerdo do mouse não funciona no Windows 10/8/7 por algu...
O cursor pula ou se move aleatoriamente enquanto digita no Windows 10
Se você descobrir que o cursor do mouse pula ou se move por conta própria, de forma automática e aleatória ao digitar em um laptop ou computador com W...