J'ai reçu cette erreur dans une application Java Play 2.0.3. Comment puis-je redémarrer Heroku Postgres Dev DB? Je ne pouvais trouver aucune instruction pour redémarrer la DB sur le centre d'aide Heroku.
3 Réponses :
Le mésage d'erreur que vous avez là-bas n'est pas une raison pour redémarrer la base de données; Ce n'est pas un problème de base de données. Votre application contient trop de connexions, probablement parce que vous avez oublié de configurer son pool de connexion. Ce n'est pas un problème de serveur DB et vous pouvez le réparer sans redémarrer le serveur DB.
Si vous arrêtez votre application de lecture ou reconfigurez son pool de connexion, le problème disparaîtra. P>
Une autre option est de Mettez votre instance Heroku en mode de maintenance, puis repartissez-la à nouveau. P>
puisque Heroku Ne vous permettez pas de vous connecter en tant que superutilisateur (pour de bonnes raisons), vous ne pouvez pas utiliser ce logement superutilisateur réservé pour vous connecter et gérer les connexions telles que vous le feriez avec PostgreSQL normal. P>
Voir aussi: P>
http://wiki.postgresql.org/wiki/number_of_database_connec tions p>
avec normal PostgreSQL Vous pouvez déconnecter votre client à partir de l'extrémité de fin du serveur à l'aide d'une connexion PostgreSQL à votre serveur. Voyez comment il est dit qu'il y a une fente réservée aux "connexions superutilisateurs"? Connectez-vous à PG en tant que superutilisateur ( Une fois que vous êtes connecté, vous pouvez voir d'autres clients Avec: p> Si vous souhaitez terminer chaque connexion, à l'exception de votre propre, vous pouvez exécuter: p> Ajouter postgres code> par défaut) à l'aide de PGADMIN-III ou
PSQL code>. P>
Et datname = actuel_database code> et / ou
et usename =
Éventuellement lien pertinent: wiki.postgresql.org/wiki/number_of_database_connections
J'ai été en mesure d'utiliser l'instruction SQL ci-dessus pour mettre fin à des connexions sur une instance Heroku PostgreSQL. Je ne suis pas sûr des autorisations de superutilisateur, mais c'était sur une base de données partagée. Utilisation de la commande HEROKU PG: PSQL CODE> J'ai pu exécuter la première instruction SQL et voir toutes les connexions, mais parce que c'était un DB partagé, cette requête avait certaines colonnes bloquées pour toutes les connexions de toutes mais de Notre DB. Ensuite, j'ai pu exécuter la deuxième instruction SQL légèrement modifiée:
Sélectionnez PROCPID, PG_TERMINATE_BACKEND (PROCPID) à partir de pg_stat_activity où PROCPID <> PG_BACEND_PID () et USENAME = '
Je pense que j'aurais d'avoir juste ajouté cela en réponse à la réponse précédente, mais je ne pouvais pas comprendre comment faire cela, alors ... P>
En tant que mise à jour du commentaire de Liron Yahdav dans le thread de la réponse acceptée: Les "utilisateurs non-héroku qui ont trouvé cette solution" Solution a fonctionné pour moi sur une base de données Heroku PostgreSQL Dev, mais avec une légère modification de la requête Liron fournie. Voici ma requête modifiée: Il semble que PROCPID ait changé de PID. P> Sélectionnez PID, PG_TERMINATE_BACKEND (PID) à partir de pg_stat_activity dans laquelle PID <> pg_backend_pid () et USENAME = '<< YOUR_USERNAME>'; P> P> P>
Il n'y a aucun moyen de redémarrer toute la base de données. Cependant, Heroku offre un moyen simple d'arrêter toutes les connexions qui résout le problème dans la majorité des cas: p>
Heroku pg: killall code> p>
Cela a résolu mon problème. Aucune requête SQL autre que Select travaillait B4 ceci.
Dupliqué possible de Heroku "PSQL: Fatal: restant Les emplacements de connexion sont réservés aux connexions de superutilisateur non-réplication "