表示されたエラー メッセージは、データベースを再起動する理由ではありません。データベースの問題ではありません。アプリケーションが保持している接続が多すぎます。おそらく、接続プールを設定するのを忘れたためです。これは DB サーバーの問題ではなく、DB サーバーを再起動せずに修正できます。
Play アプリケーションを停止するか、接続プールを再構成すると、問題は解決します。
もう 1 つのオプションは、Heroku インスタンスをメンテナンス モードにしてから、再び取り出すことです。
herokuでは (正当な理由により)スーパーユーザーとして接続することは許可されていないため、予約済みのスーパーユーザー スロットを使用して、通常の PostgreSQL のように接続および接続を管理することはできません。
以下も参照してください。
Heroku "psql: FATAL: 残りの接続スロットは非レプリケーション スーパーユーザー接続用に予約されています"
http://wiki.postgresql.org/wiki/Number_Of_Database_Connections
これを見つけたheroku以外のユーザーの場合:
通常の PostgreSQL では、サーバーへの PostgreSQL 接続を使用して、サーバー エンド エンドからクライアントを切断できます。「スーパーユーザー接続」用に予約されたスロットがあることを確認してください。postgres
PgAdmin-III または を使用して、スーパーユーザー (デフォルトでは user)として Pg に接続しますpsql
。
接続すると、次の方法で他のクライアントを表示できます。
SELECT * FROM pg_stat_activity;
自分以外のすべての接続を終了したい場合は、次を実行できます。
SELECT procpid, pg_terminate_backend(procpid)
FROM pg_stat_activity WHERE procpid <> pg_backend_pid();
AND datname = current_database
必要に応じてand/orを追加AND usename = <target-user-name>
します。