PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Starten Sie Heroku Postgres Dev DB neu

Die Fehlermeldung, die Sie dort haben, ist kein Grund, die Datenbank neu zu starten; Es ist kein Datenbankproblem. Ihre Anwendung hält zu viele Verbindungen, wahrscheinlich weil Sie vergessen haben, ihren Verbindungspool einzurichten. Das ist kein DB-Server-Problem und Sie können es beheben, ohne den DB-Server neu zu starten.

Wenn Sie Ihre Play-Anwendung beenden oder ihren Verbindungspool neu konfigurieren, wird das Problem behoben.

Eine andere Möglichkeit besteht darin, Ihre Heroku-Instanz in den Wartungsmodus zu versetzen und sie dann wieder zu entfernen.

Da heroku es Ihnen nicht erlaubt, sich als Superuser zu verbinden (aus guten Gründen) können Sie diesen reservierten Superuser-Slot nicht verwenden, um Verbindungen herzustellen und zu verwalten, wie Sie es mit normalem PostgreSQL tun würden.

Siehe auch:

Heroku "psql :SCHWERWIEGEND:verbleibende Verbindungs-Slots sind für Nicht-Replikations-Superuser-Verbindungen reserviert"

http://wiki.postgresql.org/wiki/Number_Of_Database_Connections

Wenn Sie ein Nicht-heroku-Benutzer sind und dies gefunden haben:

Mit normalem PostgreSQL können Sie Ihren Client vom Serverende trennen, indem Sie eine PostgreSQL-Verbindung zu Ihrem Server verwenden. Sehen Sie, wie es heißt, dass ein Slot für "Superuser-Verbindungen" reserviert ist? Verbinden Sie sich als Superuser mit Pg (postgres Benutzer standardmäßig) mit PgAdmin-III oder psql .

Sobald Sie verbunden sind, können Sie andere Clients sehen mit:

SELECT * FROM pg_stat_activity;

Wenn Sie jede Verbindung außer Ihrer eigenen beenden möchten, können Sie Folgendes ausführen:

SELECT procpid, pg_terminate_backend(procpid) 
FROM pg_stat_activity WHERE procpid <> pg_backend_pid();

Fügen Sie AND datname = current_database hinzu und/oder AND usename = <target-user-name> nach Bedarf.