Vanuit een willekeurige DB van het cluster:
Catch 22:je moet eerst verbonden zijn met een database. Misschien kun je verbinding maken als een andere gebruiker? (Standaard zijn sommige verbindingen gereserveerd voor superusers met de superuser_reserved_connections
instelling.)
Om gedetailleerde informatie te krijgen voor elke verbinding door deze gebruiker:
SELECT *
FROM pg_stat_activity
WHERE usename = 'user_name';
Als de dezelfde gebruiker of je kunt als superuser alle (andere) verbindingen van een gebruiker opzeggen:
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();
Je kunt er maar beter zeker van zijn dat het oké is om dat te doen. Op die manier wil je belangrijke zoekopdrachten (of verbindingen) niet beëindigen.
pg_cancel_backend()
en pg_terminate_backend()
in de handleiding.
Van een Linux-shell
Ben je die andere connecties zelf begonnen? Misschien een ophangscript van je? Je zou ze moeten kunnen doden (als je zeker weet dat het oké is om dat te doen).
Je kunt het onderzoeken met ps
welke processen mogelijk fout zijn:
ps -aux
ps -aux | grep psql
Als u een proces identificeert om te doden (wees er zeker van dat u dit niet doet) wil de server doden):
kill 123457689 # pid of process here.
Of met SIGKILL
in plaats van SIGTERM
:
kill -9 123457689