Wir haben ein ziemlich einfaches Setup, um von unserer lokalen PostgreSQL-Masterdatenbank auf unsere Präsentationsebene in AWS zu replizieren. Wir verwenden den WAL-Versand mit dieser archive_command
Einstellung. Grundsätzlich sieht das Setup so aus:
+-------------+
| Master |
+-------------+
WAL |
segments |
\|/ +--------------+
+-------------+ WAL +-+------------+ |
| |----------->| Hot Standby | |
| S3 | segments | Slaves | |
| | | |-+
+-------------+ +--------------+
Dieses Setup scheint im Allgemeinen ziemlich robust zu sein, aber ich habe keine gute Möglichkeit gefunden, Fehler zu erkennen, entweder der Master kann keine Archive hochschieben oder ein Slave oder Slaves können die Protokolldateien nicht abrufen. Was ist ein guter Weg, um festzustellen, ob ein Slave in Bezug auf den Master auf dem neuesten Stand ist? Wie kann festgestellt werden, ob der Master eine WAL-Datei nicht versendet hat?
Um dies zu verdeutlichen, verwenden wir die Slaves ausschließlich als Lesereplikate. Wir werden niemals ein Failover auf sie durchführen.