DBAtlas · Atlas de operações de banco de dados

Reconstruir uma réplica quebrada com Patroni (reinit)

PostgreSQLPatroni

Comando

# 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 --force

O 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.

Abrir no DBAtlas →

Relacionados