Ich habe zwei PostgreSQL-Server so konfiguriert, dass sie durch Streaming Hot Standby haben.
Wie kann ich es so konfigurieren, dass der Slave-Server automatisch zum neuen Master wird, wenn der Master-Server ausfällt?
Ich habe zwei PostgreSQL-Server so konfiguriert, dass sie durch Streaming Hot Standby haben.
Wie kann ich es so konfigurieren, dass der Slave-Server automatisch zum neuen Master wird, wenn der Master-Server ausfällt?
Antworten:
Failover - automatisch oder anderweitig - wird nicht direkt von PostgreSQL bereitgestellt.
Sie benötigen externe Tools wie repmgr .
Das neu veröffentlichte repmgr 2.0 unterstützt Autofailover. Ich empfehle jedoch, sehr gründlich darüber nachzudenken, ob Sie es tatsächlich verwenden sollten. Automatisiertes manuell ausgelöstes Failover ist normalerweise viel sicherer.
Wenn Sie sich für die Verwendung von Autofailover entscheiden, sollten Sie sicherstellen, dass Autofailover im Rahmen des normalen Betriebs erzwungen werden, um sicherzustellen, dass sie in Ihrer Umgebung wirklich funktionieren. Andernfalls ist es nur ein falsches Sicherheitsgefühl, und wenn etwas tatsächlich kaputt geht, wird es wahrscheinlich das gesamte System in Unordnung bringen.
Sie sollten jedes Failover-Setup natürlich regelmäßig testen, aber zumindest bei manuell ausgelöstem Failover wissen Sie, dass es passieren wird, und sind bereit, bei Problemen einzugreifen.
Es geht auch nicht nur darum, den Server zu promoten und den alten Master als Replikat neu zu erstellen. Sie müssen sich auch mit der Notwendigkeit befassen, Clientverbindungen auf den neuen Server umzustellen (mithilfe von PgBouncer, PgPool-II oder HAProxy). Sie müssen den alten Server auch zuverlässig beenden, damit es nicht zu Abweichungen kommt, bei denen beide Server glauben, sie seien Master, und einige Clients schreiben an jeden von ihnen.
Zu all dem gibt es in der PostgreSQL-Dokumentation und im Wiki einiges an Informationen. Ich schlage vor, dass Sie dort anfangen.
Ab PostgreSQL 9.3+ können Sie auch PAF verwenden . Das Starten / Stoppen / Heraufstufen Ihrer Datenbank erfolgt über eine Ressource in einem Pacemaker-Cluster.