sql >> Database teknologi >  >> RDS >> PostgreSQL

psql:FATAL:for mange forbindelser til rollen

Inde fra enhver DB i klyngen:

Catch 22:du skal først være forbundet til en database. Måske kan du oprette forbindelse som en anden bruger? (Som standard er nogle forbindelser reserveret til superbrugere med superuser_reserved_connections indstilling.)

For at få detaljerede oplysninger for hver forbindelse af denne bruger:

SELECT *
FROM   pg_stat_activity
WHERE  usename = 'user_name';

Som den samme bruger eller som superbruger kan du annullere alle (andre) forbindelser for en bruger:

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();

Vær hellere sikker på, at det er ok at gøre det. Du ønsker ikke at afslutte vigtige forespørgsler (eller forbindelser) på den måde.

pg_cancel_backend() og pg_terminate_backend() i manualen.

Fra en Linux-shell

Startede du selv de andre forbindelser? Måske et hængende manuskript af dig? Du burde være i stand til at dræbe dem (hvis du er sikker på, at det er ok at gøre det).

Du kan undersøge det med ps hvilke processer der kan være skyld i:

ps -aux
ps -aux | grep psql

Hvis du identificerer en proces, der skal dræbes (vær sikker på, du ikke gør det). ønsker at dræbe serveren):

kill  123457689 # pid of process here.

Eller med SIGKILL i stedet for SIGTERM :

kill -9 123457689


  1. Oracle - opdel enkelt række i flere rækker

  2. Hierarkiske forespørgsler

  3. Skinner udvider felter med omfang, det kan PG ikke lide

  4. Undgå genindsend formular efter klik på tilbage-knappen