DBAtlas · Veritabanı operasyon atlası

Bozulan replica'yı Patroni ile yeniden oluştur (reinit)

PostgreSQLPatroni

Komut

# Replica'nın PGDATA'sını silip yeniden oluştur (create_replica_methods: pgbackrest/basebackup):
patronictl -c /etc/patroni/patroni.yml reinit <cluster> <member> --wait --force
# Yedek deposu yerine doğrudan leader'dan basebackup al:
patronictl -c /etc/patroni/patroni.yml reinit <cluster> <member> --from-leader --wait --force

Ne yapar?

Belirtilen replica'nın veri dizinini siler ve Patroni'nin create_replica_methods ayarına göre (pgBackRest restore veya pg_basebackup) sıfırdan yeniden kurar.

Ne zaman kullanılır?

Replica timeline uyuşmazlığı, pg_rewind başarısızlığı, eksik WAL veya veri bozulması nedeniyle replikasyona katılamadığında.

Dikkat

Üyenin tüm yerel verisi silinir; komutun doğru üyeyi hedeflediğini iki kez kontrol et (Patroni leader üzerinde reinit'i reddeder). Büyük veritabanlarında saatler sürebilir ve leader'a I/O/ağ yükü bindirir; bu sürede küme bir replica eksik çalışır. --from-leader yalnız güncel Patroni 4.x sürümlerinde vardır (patronictl reinit --help ile kontrol et); create_replica_methods'u atlayıp leader'dan pg_basebackup alır.

DBAtlas'ta aç →

İlgili