Hallo,
ich haben eine PGSQL Datenbank. Die Daten werden per barman gesichert. Aktuell ist WAL Archiving (kein WAL Streaming) auf den Barman Server aktiv.
Nun sollen wir eine Replikation auf einen cold standby Knoten einrichten. Manuelles Umschalten im Problemfall oder bei größeren Wartungsarbeiten vom primary auf den secondary - und natürlich später wieder zurück.
Ich habe mir dafür das OpenSource Produkt repmgr angeschaut, das hier unterstützt (https://www.repmgr.org/)
Meine Fragen:
Habt Ihr Erfahrungen mit repmgr und könnt Ihr das tool empfehlen?
Und unabhängig vom Tool:
Den Normalfall (streaming funktioniert - switch over / failover ) habe ich getestet und verstanden.
Wenn ich nun aber auf die archivierten WALs zurückgreifen muss, weil z.B. der secondary mal für einige Zeit abgeschaltet wurde habe ich noch einen Knoten im Hirn.
Ich habe ja auf dem primären Knoten WAL Archiving zum barman Server konfiguriert.
archive_command = 'barman-wal-archive <IP> vm1 %p'
restore_command = 'barman-wal-restore <IP> vm1 %f %p'
Was trage ich da auf dem secondary ein?
Das gleiche Ziel wie beim primary:
archive_command = 'barman-wal-archive <IP> vm1 %p'
restore_command = 'barman-wal-restore <IP> vm1 %f %p'
Gibt es dann nicht Probleme, weil beide die WALs ins gleiche Directory archivieren?
Oder lege ich ein eigenes Backup profil an und archiviere dann nach dort
archive_command = 'barman-wal-archive <IP> vm2 %p'
restore_command = 'barman-wal-restore <IP> vm2 %f %p'
Aber dann müsste ich ja die WALs von vm1 nach vm2 kopieren, damit der Knoten nach der Downtime die WALs ziehen kann
Oder überkreuz?
Also bei vm1:
archive_command = 'barman-wal-archive <IP> vm1 %p'
restore_command = 'barman-wal-restore <IP> vm2 %f %p'
und bei vm2:
archive_command = 'barman-wal-archive <IP> vm2 %p'
restore_command = 'barman-wal-restore <IP> vm1 %f %p'
Das Ganze sollte ja auch weiter funktionieren, wenn der secondary zum primary wird.
Dann muss er ja seine WALs so archivieren, dass ich recoverfähig bleibe.
In diesem Fall muss ich ja dann entweder den bisherigen primary zum secondary machen oder beim Rückweg auf den primary ein basebackup einsetzen (wobei wir hier von bis zu 2TB Daten sprechen).
Ich finde in den vielen Dokumenten zur Replikation nichts was wirklich passt.
Danke
LG
Dirk