Database
Como derrubar conexões específicas de um banco de dados PostgreSQL?
RT.DB.FAQ-51384
Para derrubar conexões específicas de um banco, será necessário conectar à instância e executar a função da banco comando pg_terminate_backend(pid).
Exemplo:
Digamos que exista um lock causado pelo pid 78965. Para derrubar, execute:
select pg_terminate_backend(78965).
Para derrubar todas as conexões a um determinado banco, pode-se executar, por exemplo:
PostgreSQL 9.2 e posterior:
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB'
AND pid <> pg_backend_pid();
PostgreSQL 9.1 e anterior:
SELECT pg_terminate_backend(pg_stat_activity.procpid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB'
AND procpid <> pg_backend_pid();
Ver também: