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: