[PostgreSQL] – Consultando e eliminando sessões ativas
Bom pessoal vou mostrar como listar/matar as sessões ativas no PostgreSQL . O sql a seguir lista todas as sessões ativas.
1 2 3 4 5 6 7 8 | select datname, procpid, usename, application_name, client_addr, client_hostname, backend_start from pg_stat_activity |
Obs: A coluna procid foi renomeada para pid a partir da versão 9.2 do PostgreSQL
Com a lista de usuário em mãos, podemos optar por “matar” a sessão de algum usuário ativo, para isto basta executar o comando abaixo, substituindo o “procpid’ pelo valor retornado da consulta anterior.
1 | select pg_terminate_backend(procpid); |
E para eliminar todas as conexões ativas, menos a conexão atual.
1 2 3 | SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE procpid pg_backend_pid(); |
Fonte:
http://blog.gaudencio.net.br/2014/01/postgresql-consultando-e-eliminando.html
http://fabriciodev.blogspot.com.br/2012/03/consultando-e-eliminando-sessoes-ativas_20.html
Top
Boa noite. Muito obrigado por prestigiar o nosso trabalho.
Comando correto para finalizar, nas versoes a partir da 9.2
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE pid pg_backend_pid();
Muito bom, prático e eficiente.
Obrigado pela dica.
fiz desse jeito:
–desativar processos tivos
select * from pg_stat_activity –para pegar o PID
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE pid = 30041