Reconstruire une réplique défaillante avec Patroni (reinit)
PostgreSQLPatroniCommande
# 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 --forceCe que fait la commande
Supprime le répertoire de données de la réplique indiquée et la reconstruit de zéro selon les create_replica_methods de Patroni (restauration pgBackRest ou pg_basebackup).
Quand l'utiliser
Lorsqu'une réplique ne peut pas rejoindre la réplication à cause d'une incohérence de timeline, d'un échec de pg_rewind, de WAL manquant ou d'une corruption de données.
Attention
Toutes les données locales du membre sont supprimées ; vérifiez bien que la commande cible le bon membre (Patroni refuse reinit sur le leader). Sur les grosses bases, cela peut prendre des heures et ajoute une charge d'E/S/réseau sur le leader ; le cluster fonctionne pendant ce temps avec une réplique en moins. --from-leader n'existe que dans les versions récentes de Patroni 4.x (vérifiez avec patronictl reinit --help) ; il ignore create_replica_methods et effectue un pg_basebackup depuis le leader.
Voir aussi
- Afficher l'état, la topologie et l'historique du cluster Patroni
- Effectuer un switchover planifié avec Patroni
- Effectuer un failover manuel avec Patroni
- Modifier les paramètres du cluster dans Patroni (edit-config) et appliquer les redémarrages en attente
- Mettre Patroni en mode maintenance et en sortir (pause/resume)
- Vérifier la santé du DCS Patroni (etcd/Consul) et de l'API REST