PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgresql - incapaz de descartar o banco de dados devido a algumas conexões automáticas com o banco de dados


Você pode impedir conexões futuras:
REVOKE CONNECT ON DATABASE thedb FROM public;

(e possivelmente outros usuários/funções; consulte \l+ em psql )

Você pode então encerrar todas as conexões com este banco de dados, exceto a sua:
SELECT pid, pg_terminate_backend(pid) 
FROM pg_stat_activity 
WHERE datname = current_database() AND pid <> pg_backend_pid();

Em versões mais antigas pid foi chamado procpid então você terá que lidar com isso.

Desde que você revogou CONNECT direitos, o que estava tentando se conectar automaticamente não deve mais ser capaz de fazê-lo.

Agora você poderá descartar o DB.

Isso não funcionará se você estiver usando conexões de superusuário para operações normais, mas se estiver fazendo isso, precisará corrigir esse problema primeiro.

Depois de terminar de descartar o banco de dados, se você criar o banco de dados novamente, poderá executar o comando abaixo para restaurar o acesso
GRANT CONNECT ON DATABASE thedb TO public;