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

psql:FATAL:muitas conexões para a função

De dentro de qualquer banco de dados do cluster:


Captura 22:você precisa estar conectado a um banco de dados primeiro. Talvez você possa se conectar como outro usuário? (Por padrão, algumas conexões são reservadas para superusuários com o superuser_reserved_connections contexto.)

Para obter informações detalhadas para cada conexão deste usuário:
SELECT *
FROM   pg_stat_activity
WHERE  usename = 'user_name';

Como o mesmo usuário ou como superusuário você pode cancelar todas as (outras) conexões de um usuário:
SELECT pg_cancel_backend(pid)     -- (SIGINT)
    -- pg_terminate_backend(pid)  -- the less patient alternative (SIGTERM)
FROM   pg_stat_activity
WHERE  usename = 'user_name'
AND    pid <> pg_backend_pid();

Melhor ter certeza de que está tudo bem fazer isso. Você não deseja encerrar consultas (ou conexões) importantes dessa maneira.

pg_cancel_backend() e pg_terminate_backend() no manual.

De um shell do Linux


Você mesmo iniciou essas outras conexões? Talvez um roteiro suspenso seu? Você deve ser capaz de matá-los (se tiver certeza de que não há problema em fazê-lo).

Você pode investigar com ps quais processos podem estar com defeito:
ps -aux
ps -aux | grep psql

Se você identificar um processo para matar (melhor ter certeza, você não quer matar o servidor):
kill  123457689 # pid of process here.

Ou com SIGKILL em vez de SIGTERM :
kill -9 123457689