As conexões de verificação pós -gres estão ativas

As conexões de verificação pós -gres estão ativas
PostgreSQL é um dos meus sistemas de gerenciamento de banco de dados favoritos. É poderoso, fácil de trabalhar e usa consultas SQL nativas muito familiares.

Uma característica poderosa sobre o PostgreSQL é a capacidade de buscar informações em consultas SQL mínimas. Isso porque possui esquemas e tabelas que são bem organizadas e reservadas para informações específicas, incluindo a atividade do servidor de monitoramento.

Este tutorial o levará a várias maneiras de identificar conexões e atividades do servidor usando o servidor. Isso pode ajudá -lo a identificar as conexões, gerenciá -las ou encerrá -las se não forem úteis.

O catálogo do sistema PostgreSQL

Antes de consultarmos o PostgreSQL para conexões ativas no servidor, vamos entender onde acontece essa coleta de informações.

PostgreSQL contém um esquema com tabelas e visualizações preenchidas com informações de metadados sobre outros objetos no servidor. Isso é semelhante à tabela Information_schema em MySQL.

O esquema do catálogo do sistema permite coletar informações sobre o sistema, incluindo processos do sistema, índices, acesso à tabela, método de acesso a dados e muito mais.

Como o catálogo do sistema é enorme e contém cargas e muitas informações, não podemos cobri -lo em um artigo. No entanto, há uma tabela em que estamos interessados: o PG_STAT_ACTIVIDADE.

Esta tabela mostra um log de conexões estabelecidas para o servidor e seus dados correspondentes, banco de dados conectado a, o PID de seu processo equivalente e muito mais.

O PG_STAT_ACTIVIDADE

As informações que podemos reunir na tabela PG_STAT_ACTIVIDADE incluem o seguinte

  • datid - Mostra o OID do banco de dados em que a conexão foi conectada a.
  • DatName - O nome da conexão do banco de dados.
  • PID - Processa ID da conexão.
  • usaysid - OID do usuário conectado.
  • usename - O nome do usuário conectado.
  • Nome da Aplicação - O nome do aplicativo conectado em uma sessão específica
  • client_addr - Endereço IP do cliente associado a uma conexão específica.
  • client_hostname - O nome do host do cliente de uma conexão específica.
  • client_port - Isso mostra o número da porta TCP usado para conectar -se ao servidor por um cliente definido.
  • backend_start - Quando o processo iniciado-ele corresponde à hora de um cliente conectado ao servidor.
  • Query_stat - O momento em que a consulta atualmente em execução começou. Se não houver consulta ativa, ele mostra o query_stat da consulta anterior.
  • estado - estado atual da conexão. Isso pode ser ocioso, ativo, desativado, ocioso em uma transação, ociosa na transação (abortada) e chamada de função FastPath.
  • Consulta - mostra a consulta mais recente da conexão.
  • Esperando - verdadeiro ou falso se uma conexão estiver esperando por um bloqueio.

Com essas informações, agora podemos consultar informações detalhadas sobre conexões ativas no servidor.

Como consultar conexões ativas

Para consultar conexões ativas, começamos fazendo login no servidor. Se você estiver usando a instalação padrão do PostGresql, use o PSQL com seu nome de usuário e senha como

PSQL -U PostGres -w
Senha:
PSQL (13.3)

Digite “ajuda” para obter ajuda.

Vamos começar reunindo todas as informações da tabela PG_STAT_ACTIVIDADE. Use a consulta como mostrado abaixo

Selecione * de PG_STAT_ACTIVIDADE;

Depois de executar a consulta acima, o PostgreSQL despejará muitas informações sobre você, a maioria das quais você pode não precisar. Para resolver isso, podemos selecionar colunas específicas, como mostrado na consulta abaixo:

Selecione DatName como Database_Name,
pid como process_id,
usename como nome de usuário,
Nome da Aplicação,
client_addr como host,
client_port como porta,
estado,
consulta
de pg_stat_activity;

Isso selecionará apenas as informações necessárias e as organizará de maneira tabular, como mostrado na captura de tela.

Finalmente, podemos filtrar onde o status não é igual a ativo para reunir apenas as conexões ativas.

A consulta para isso é:

Selecione DatName como Database_Name,
pid como process_id,
usename como nome de usuário,
Nome da Aplicação,
client_addr como host,
client_port como porta,
estado,
consulta
de pg_stat_activity
Onde o estado 'ocioso';

Isso mostrará uma saída semelhante à mostrada abaixo:

Finalmente, uma maneira simples de obter informações semelhantes é usar pgadmin. O PGADMIN é uma poderosa ferramenta de administração da GUI para o banco de dados PostgreSQL.

Depois de fazer login no pgadmin, navegue até o painel e vá para Server_Activity. Atualize para mostrar todas as conexões.

Conclusão

Este guia analisou como consultar atividades de conexão do PostgreSQL usando PG_STAT_ACTIVIDE TABLE E PGADMIN.