Voir Heroku "psql : FATAL : les emplacements de connexion restants sont réservés aux connexions superutilisateur sans réplication". :
Heroku a parfois un problème avec l'équilibrage de la charge de la base de données.
André Laszlo
, markshiz
et moi avons tous signalé avoir traité ce sujet dans les commentaires sur la question.
Pour vous épargner un appel au support, voici la réponse que j'ai obtenue du support Heroku pour un problème similaire :
Bonjour,
L'une des limites des bases de données de niveau amateur est la maintenance inopinée. De nombreuses bases de données pour amateurs fonctionnent sur un seul serveur partagé, et nous devons parfois redémarrer ce serveur pour des raisons de maintenance matérielle, ou migrer les bases de données vers un autre serveur pour équilibrer la charge. Lorsque cela se produit, vous verrez une erreur dans vos journaux ou aurez des problèmes de connexion. Si le serveur redémarre, la remise en ligne de la base de données peut prendre 15 minutes ou plus.
La plupart des applications qui gèrent un pool de connexion (comme ActiveRecord dans Rails) peuvent simplement ouvrir une nouvelle connexion à la base de données. Cependant, dans certains cas, une application ne sera pas en mesure de se reconnecter. Si cela se produit, vous pouvez redémarrer votre application pour la remettre en ligne.
C'est l'une des raisons pour lesquelles nous vous déconseillons d'utiliser des bases de données amateurs pour les applications de production critiques. Les bases de données Standard et Premium incluent des notifications pour les événements d'arrêt, et sont beaucoup plus performantes et stables en général. Vous pouvez utiliser pg:copy pour migrer vers un plan standard ou premium.
Si cela continue, vous pouvez essayer de provisionner une nouvelle base de données (sur un serveur différent) avec heroku addons:add, puis utiliser pg:copy pour déplacer les données. Gardez à l'esprit que les règles des niveaux de loisirs s'appliquent au plan de base à 9 $ ainsi qu'à la base de données gratuite.
Merci, Bradley
1 votes
J'ai le même problème. J'ai lu quelque part que le support Heroku avait "détecté quelques problèmes" sur certains serveurs, et ils ont recommandé à l'utilisateur en question de provisionner une nouvelle base de données Basic et de migrer vers celle-ci en utilisant pgbackups. Mon problème maintenant est que l'application est si nouvelle que je n'ai pas encore créé de sauvegarde, et je reçois la même erreur en essayant d'en créer une bien sûr :D
0 votes
Pour mémoire, j'ai pu utiliser
heroku pgbackups
pour créer une sauvegarde malgré cette erreur.0 votes
Pour reproduire ce problème, vous pouvez créer un grand nombre de terminaux.
.bat
script dans Windows pour cela :for /l %%x in (1, 1, 100) do ( start psql )
où 100 est le nombre souhaité de backends.0 votes
J'ai eu le même problème. Je n'ai pas réussi à transférer les données vers une nouvelle base de données en utilisant
pg:backups copy
,pg:backups capture
en s'y connectant à partir depgAdmin
sur mon propre ordinateur, ou de toute autre manière que je pourrais imaginer. Mêmepg:killall
n'a pas aidé. Une heure plus tard, j'ai réessayé et les connexions étaient à 50-50, donc après quelques tentatives, j'ai eu un succèspg:backups copy
et mon application est de retour dans les airs. Ce n'était... pas une journée amusante. Si tu as googlé ça, bois un verre d'eau.1 votes
J'ai à nouveau ce problème. Quelle chance d'avoir documenté mon expérience précédente... Edit : cette fois le redémarrage a suffi.
0 votes
J'ai eu cette erreur lors de la mise à jour de gitlab. Redémarrer gitlab et réessayer l'installation a résolu le problème.
0 votes
Je reproduis l'erreur en créant au moins 100 demandes de connexion à Postgres. Je vais essayer d'augmenter les limites de connexions maximales