Analisando e consultando processos no PostgreSQL
No post de hoje vamos mostrar como analisar e consultar processos no PostgreSQL.
O PostgreSQL é um sistema de gerenciamento de banco de dados relacional do tipo cliente/servidor com arquitetura multiprocesso e executado em um único host.
Precisando melhorar seu servidor de banco de dados PostgreSQL? Ou precisa de uma melhor administração do seu banco de dados? Temos o prazer em ajudar, faça uma cotação agora mesmo soloweb.com.br
Uma coleção de vários processos que gerenciam cooperativamente um cluster de banco de dados é geralmente chamada de ‘servidor PostgreSQL’ e contém os seguintes tipos de processos:
- Um processo do servidor postgres é um pai de todos os processos relacionados a um gerenciamento de cluster de banco de dados.
- Cada processo de back-end lida com todas as consultas e declarações emitidas por um cliente conectado.
- Vários processos em segundo plano executam processos de cada recurso (por exemplo, processos VACUUM e CHECKPOINT) para gerenciamento de banco de dados.
- Nos processos associados à replicação , eles executam a replicação de streaming.
- No processo de trabalho em segundo plano compatível com a versão 9.3, ele pode executar qualquer processamento implementado pelos usuários. Para não entrar em detalhes aqui, consulte o documento oficial
Um exemplo da arquitetura do processo no PostgreSQL.
Vamos agora a algunss comandos uteis no seu banco de dados.
1. Listar o número de conexões ativas no PostgreSQL utilize o comando
select * from pg_stat_activity;
2. Você pode utilizar o comando count() para contar as conexões.
select count(*) from pg_stat_activity;
3. Outra opção de consulta processos
SELECT user, pid, client_addr, query, query_start, NOW() - query_start AS elapsed
FROM pg_stat_activity
WHERE query != '<IDLE>'
-- AND EXTRACT(EPOCH FROM (NOW() - query_start)) > 1
ORDER BY elapsed DESC;
4. Terceira Opção
SELECT pid, age(clock_timestamp(), query_start), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc;
5. Encontrar tempo de processamento de querys longas
SELECT pid, now() - pg_stat_activity.query_start AS duration, query, state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes';
6. Cancelamento de querys de execução longa
SELECT pg_cancel_backend(pid);
7. Eliminar o ID do processo / Encerrar consultas travadas
SELECT pg_terminate_backend(pid);
E lembrando que a SOLOWEB além de oferecer Hospedagem de Sites, Servidores Dedicados, Servidores VPS com o menor custo do Brasil, também desenvolve soluções de software e realiza gerenciamento e monitoramento de servidores para sua empresa, faça uma cotação sem custo, acesse: www.soloweb.com.br