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:
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.