Defekte Replica mit Patroni neu aufbauen (reinit)
PostgreSQLPatroniBefehl
# 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 --forceWas 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.
Verwandte Einträge
- Status, Topologie und Historie des Patroni-Clusters anzeigen
- Geplanten Switchover mit Patroni durchführen
- Manuellen Failover mit Patroni durchführen
- Clusterweite Parameter in Patroni ändern (edit-config) und ausstehende Neustarts anwenden
- Patroni in den Wartungsmodus versetzen und zurück (pause/resume)
- Zustand von Patroni-DCS (etcd/Consul) und REST API prüfen