Verificando conexões ativas no Postgres

31 Jan 2020



Muitas vezes precisamos realizar alguma operação no banco de dados, seja executar uma query ou atualizar o sistema então é retornado um erro informando que a tabela já está em uso, checamos e aparentemente nenhuma aplicação está aberta. Para isso podemos usar a query:

select * from pg_stat_activity;
GAD

O Postgres vai listar todas as conexões ativas no momento, são exibidas informações como o nome da aplicação que está acessando(application_name), o ip da máquina(client_addr), qual query está sendo executada(query) e uma delas é o ID do processo(pid).

Para finalizar a conexão desejada basta usar a seguinte query passando o pid como parâmetro. Dessa forma será encerrada a conexão que está ativa.

select pg_terminate_backend(pid);

Também podemos encerrar todas mantendo apenas a sua conexão ativa.

select pg_terminate_backend(pid) from pg_stat_activity where pid <> pg_backend_pid();