2017-08-19 5 views
2

Ich habe eine Reihe von 4 vagrant Systeme.Pgpool nicht wieder Verbindung

  • web1 (Haupt db)
  • web2 (db von web1 replizierten)
  • Verw.- (ein Knoten, von dem aus Im Verbindungs)
  • web3 (pgpool läuft)

My ist eingerichtet, um das Gleichgewicht zwischen den Datenbanken auf Web1 und Web2 zu laden. Es funktioniert gut und ich kann eine Verbindung zur db herstellen, selbst wenn einer von ihnen durch pgpool ist. Aber als ich beide Datenbanken heruntergefahren habe (web1 und web2), verliere ich die bestehende Verbindung durch pgpool.

Jetzt, wenn ich die Haupt-db wieder heraufbringen, gehe ich davon aus, dass diese Verbindung wiederherstellen sollte, aber es nicht. Selbst wenn meine Annahme falsch ist, wie bekomme ich pgpool, um die Verbindungen zu meinem db auf web1 und web2 wieder zu bekommen?

Derzeit nachdem beide Datenbanken nach unten gehen, bekomme ich die Meldung -

server closed the connection unexpectedly 
This probably means the server terminated abnormally 
before or while processing the request. 
The connection to the server was lost. Attempting reset: Failed. 

Wenn ich die Datenbank bringen wieder zurück, ich diese Meldung noch erhalten -

psql: server closed the connection unexpectedly 
This probably means the server terminated abnormally 
before or while processing the request. 

Ich bin in der Lage zu Greife die Verbindungen nur zurück, wenn ich die Systeme neu starte. Gibt es etwas, das ich vermisse oder habe ich falsch verstanden, wie pgpool funktioniert?

Ich habe die Dateien pgpool und postgresql conf hier nicht hinzugefügt, da ich denke, dass sie nicht relevant sind, aber wenn nötig, werde ich sie hinzufügen.

Antwort

2

Wenn der Back-End-Knoten im Falle eines Knotenfehlers auf Failover gesetzt ist, trennt Pgpool-II den ausgefallenen Knoten, nachdem das Failover für ihn ausgeführt wurde. Was passiert in Ihrem Fall? Aber sobald sie gelöst sind, werden die fehlerhaften Knoten niemals automatisch an Pgpool-II angehängt, selbst wenn sie wieder verfügbar/erreichbar sind. Der Grund dafür ist, dass Pgpool-II nicht selbst sicherstellen kann, dass der Knotenausfall Daten beschädigt hat und/oder wenn er vom Benutzer ordnungsgemäß repliziert wird. So fehlgeschlagene Knoten müssen manuell an Pgpool-II angehängt werden und dafür können Sie den Befehl pcp_attach_node verwenden.

+0

können Sie mir bitte einen Hinweis darauf in der Dokumentation zeigen? – leoOrion

+1

Ich bezweifle, ob es in der offiziellen Pgpool-II-Dokumentation erwähnt wird, aber so funktioniert der Pgpool-II. Siehe https://blog.dbi-services.com/vertical-scale-your-postgresql-infrastructure-with-pgpool-2-automatic-failover-and-reconfiguration/blogpost, die das Thema des erneuten Anhängens des Knoten zu Pgpool –

Verwandte Themen