Reconstruir uma réplica quebrada com 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 --forceO que faz
Apaga o diretório de dados da réplica especificada e a reconstrói do zero conforme os create_replica_methods do Patroni (restore do pgBackRest ou pg_basebackup).
Quando usar
Quando uma réplica não consegue voltar à replicação por divergência de timeline, falha do pg_rewind, WAL ausente ou corrupção de dados.
Atenção
Todos os dados locais do membro são apagados; confira duas vezes se o comando aponta para o membro certo (o Patroni recusa reinit no leader). Em bancos grandes pode levar horas e adiciona carga de I/O/rede no leader; enquanto isso o cluster fica com uma réplica a menos. --from-leader existe apenas em versões recentes do Patroni 4.x (verifique com patronictl reinit --help); ele ignora os create_replica_methods e faz um pg_basebackup a partir do leader.
Relacionados
- Mostrar o status, a topologia e o histórico do cluster Patroni
- Executar um switchover planejado com Patroni
- Executar um failover manual com Patroni
- Alterar parâmetros de todo o cluster no Patroni (edit-config) e aplicar restarts pendentes
- Colocar o Patroni em modo de manutenção e retirar (pause/resume)
- Verificar a saúde do DCS (etcd/Consul) e da REST API do Patroni