Reconfigure um conjunto de réplicas autogerenciadas com membros indisponíveis
Nesta página
Para reconfigurar um conjunto de réplicas quando uma maioria dos membros estiver disponível, use a operação rs.reconfig()
no primary atual, seguindo o exemplo no Procedimento de reconfiguração do conjunto de réplicas.
Este documento fornece etapas para reconfigurar um conjunto de réplicas quando apenas uma minoria de membros estiver acessível.
Talvez seja necessário usar o procedimento, por exemplo, em um conjunto de réplicas distribuído geograficamente, onde nenhum grupo local de membros pode alcançar a maioria. Consulte Replica Set Elections para obter mais informações sobre essa situação.
Reconfigurar forçando a reconfiguração
Esse procedimento permite que você recupere enquanto a maioria dos membros do conjunto de réplicas está inativa ou inacessível. Você se conecta a qualquer membro sobrevivente e utiliza a opção force
para o método rs.reconfig()
.
A opção force
força uma nova configuração no membro. Use esse procedimento apenas para se recuperar de interrupções catastróficas. Não utilize o force
toda vez que você reconfigurar. Além disso, não utilize a opção force
em quaisquer scripts automáticos e não utilize force
quando ainda houver um principal.
Para forçar a reconfiguração:
Faça backup de um membro sobrevivente.
Conecte-se a um membro sobrevivente e salve a configuração atual. Considere os seguintes comandos de exemplo para salvar a configuração:
cfg = rs.conf() printjson(cfg) No mesmo nó, remova os nós inativos e inalcançáveis do conjunto de réplicas da array
members
ao definir a array equivalente somente aos nó sobreviventes. Veja o seguinte exemplo, que utiliza a variávelcfg
criada na etapa anterior:cfg.members = [cfg.members[0] , cfg.members[4] , cfg.members[7]] No mesmo nó, reconfigure o conjunto utilizando o comando
rs.reconfig()
com a opçãoforce
definida emtrue
:rs.reconfig(cfg, {force : true}) Esta operação força o secundário a usar a nova configuração. A configuração é então propagada para todos os nós sobreviventes listados na matriz
members
. O conjunto de réplicas elege então um novo primário.Observação
Quando você utiliza o
force : true
, o número da versão na configuração do conjunto de réplicas aumenta significativamente, por dezenas ou centenas de milhares. Isso é normal e projetado para evitar colisões de versão definida se você acidentalmente forçar reconfigurações em ambos os lados de uma partição de rede e, em seguida, o particionamento de rede terminar.Se a falha ou partição for apenas temporária, encerre ou desative os nós removidos o mais rápido possível.