Ist es möglich, das archive_command
zum Senden an mehrere Maschinen zu verwenden? Ist es genauso einfach wie das Trennen mit a, &&
da es im Wesentlichen nur eine Befehlszeile ist?
command1 && command2
Ich gehe davon aus, dass dies einen schlechten Effekt haben könnte, wenn ein Befehl fehlschlägt. Wenn er beispielsweise command1
fehlschlägt, wird er command2
nicht ausgeführt. und wenn dies command2
fehlschlug, würde es für die ganze Sache ungleich Null zurückgeben und Postgres würde erneut versuchen, die WAL zu senden, was bedeuten würde, dass sie erneut ausgeführt würde command1
.
Ich hoffe, es gibt eine offiziellere Lösung für das Problem. Mein Ziel ist es, eine Sicherung innerhalb des Rechenzentrums und eine Sicherung außerhalb des Rechenzentrums zu haben.
postgresql
Collin Peters
quelle
quelle
Antworten:
Zuerst erstelle ich immer ein Wrapper-Skript, wenn ich solche Befehle erstelle. Das macht es einfacher, den Befehl zu debuggen, ohne postgres signalisieren zu müssen, um etwas neu zu laden. Dies erleichtert auch das Einschließen der Protokollierung aus Ihrem Archivierungsskript.
Zunächst müssen Sie herausfinden, wie Ihre Daten repliziert werden sollen. Die Art und Weise, wie Sie es jetzt tun, scheint in Ordnung zu sein, zumindest wenn Sie vor dem Kopieren überprüfen, ob die Zieldatei nicht vorhanden ist. Auf diese Weise kann es beliebig oft ausgeführt werden und versucht, es an den externen Speicherort zu kopieren.
quelle
Ich glaube, Sie könnten dies mit mehreren tun
rsync
Befehlen anstatt so etwas zu verwendencp
. Auf diese Weise sind die anderen nicht betroffen, wenn ein Server einen Neustart erfordert.Etwas wie:
Nicht offiziell, aber theoretisch praktikabel.
quelle