DBAtlas · Atlas für Datenbankbetrieb

Defekte Replica mit Patroni neu aufbauen (reinit)

PostgreSQLPatroni

Befehl

# Wipe the replica's PGDATA and rebuild it (create_replica_methods: pgbackrest/basebackup):
patronictl -c /etc/patroni/patroni.yml reinit <cluster> <member> --wait --force
# Take the basebackup directly from the leader instead of the backup repository:
patronictl -c /etc/patroni/patroni.yml reinit <cluster> <member> --from-leader --wait --force

Was es tut

Löscht das Datenverzeichnis der angegebenen Replica und baut es gemäß den create_replica_methods von Patroni (pgBackRest-Restore oder pg_basebackup) komplett neu auf.

Wann einsetzen

Wenn eine Replica wegen eines Timeline-Konflikts, eines fehlgeschlagenen pg_rewind, fehlenden WAL oder Datenkorruption nicht wieder in die Replikation einsteigen kann.

Vorsicht

Alle lokalen Daten des Mitglieds werden gelöscht; prüfe genau, ob der Befehl das richtige Mitglied trifft (Patroni verweigert reinit auf dem Leader). Bei großen Datenbanken kann das Stunden dauern und erzeugt I/O-/Netzwerklast auf dem Leader; der Cluster läuft so lange mit einer Replica weniger. --from-leader gibt es nur in neueren Patroni-4.x-Releases (mit patronictl reinit --help prüfen); es überspringt create_replica_methods und zieht ein pg_basebackup vom Leader.

In DBAtlas öffnen →

Verwandte Einträge