Kontext:
Angenommen, bei Verwendung von Streaming Replication / Hot Standby in einem Postgres 9.1-Cluster fällt ein Standby-Knoten aus. Es bleibt einen Tag lang unten. Während dieser Zeit tritt viel DML auf dem Master auf. Die recovery.conf des Standbys enthält keinen 'restore_command'-Eintrag (zum Wiederherstellen aus WAL-Journaldateien), aber eine' primary_conninfo'-Zeichenfolge (für Streaming Replication).
Frage:
Wenn ich nach einem Tag der Änderungen am Master den Standby erneut starte. Wird es nur mit Streaming Replication "aufholen" (irgendwann in einen Zustand kommen, der dem Master entspricht)? Oder muss ich die WAL-Dateiarchivierung aktivieren und die während des Ausfalls archivierten Dateien anwenden lassen, um die Aktualität sicherzustellen?
Ich habe das WAL-Archivierungs- / Streaming-Replikationsdokument hier überprüft und es besagt, dass Sie nicht sowohl die WAL-Archivierung als auch die Streaming-Replikation aktivieren müssen, aber es ist unklar, ob eine Aufholjagd stattfinden wird, ohne dass die WAL-Dateiarchivierung aktiviert ist.
Vielen Dank!
quelle
Im Standby-Knoten können Sie restore_command in der Datei recovery.conf festlegen und anschließend die Master-Dateien pg_xlog (die im Standby-Modus fehlen) in den Ordner kopieren, auf den restore_command verweist. Sie können leicht feststellen, welche xlog-Dateien fehlen, indem Sie den Startknoten starten und eingeben
Dort wird "Warten auf 000000020000005200000025" oder so angezeigt, das angibt, welches pg_xlog Sie vom Master in den restore_command-Pfad von Standby kopieren sollen.
Wenn Sie wal_archiving aktivieren, wird die Archivierung ab dem Zeitpunkt Ihrer Einrichtung gestartet.
quelle
Nein, ich habe eine Instanz der Streaming-Replikation eingerichtet, die nicht mehr synchron ist. Ich konnte sie erst wieder in Betrieb nehmen, als ich ein Handbuch
rsync
für die WAL-Archive erstellt habe.quelle