Reconstruir una réplica dañada con Patroni (reinit)
PostgreSQLPatroniComando
# 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 --forceQué hace
Borra el directorio de datos de la réplica indicada y la reconstruye desde cero según los create_replica_methods de Patroni (restauración con pgBackRest o pg_basebackup).
Cuándo usarlo
Cuando una réplica no puede reincorporarse a la replicación por una discrepancia de timeline, un pg_rewind fallido, WAL faltante o corrupción de datos.
Precaución
Se borran todos los datos locales del miembro; compruebe dos veces que el comando apunta al miembro correcto (Patroni rechaza el reinit en el leader). En bases de datos grandes puede tardar horas y añade carga de I/O/red al leader; mientras tanto el clúster funciona con una réplica menos. --from-leader solo existe en versiones recientes de Patroni 4.x (compruébelo con patronictl reinit --help); omite create_replica_methods y toma un pg_basebackup del leader.
Relacionado
- Mostrar el estado, la topología y el historial del clúster Patroni
- Realizar un switchover planificado con Patroni
- Realizar un failover manual con Patroni
- Cambiar parámetros de todo el clúster en Patroni (edit-config) y aplicar los reinicios pendientes
- Poner Patroni en modo mantenimiento y salir de él (pause/resume)
- Comprobar la salud del DCS de Patroni (etcd/Consul) y de la REST API