Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Ajustar prioridade para um membro autogerenciado do conjunto de réplicas

Nesta página

  • Visão geral
  • Considerações
  • Procedimento

As configurações priority dos membros do conjunto de réplicas afetam a sincronização e o resultado das eleições para o primário. Os membros de maior prioridade têm maior probabilidade de convocar eleições e de vencer. Use esta configuração para garantir que alguns membros tenham maior probabilidade de se tornarem um primário e que outros nunca se tornem o primário.

O valor da configuração priority do membro determina o priority do membro nas eleições. Quanto maior o número, maior a prioridade.

Para modificar prioridades, você atualiza a array members no objeto de configuração de réplica. O índice de array começa com 0. Não confunda esse valor de índice com o valor do campo members[n]._id do membro do conjunto de réplicas na array.

O valor de priority pode ser qualquer ponto flutuante (i.e. número decimal) entre 0 e 1000. O valor padrão para o campo priority é 1.

Para impedir que um membro busque a eleição como primary, atribua a ele uma priority de 0. Membros ocultos e membros atrasados têm priority definido como 0.

Os árbitros têm prioridade 0.

Ajuste as configurações de prioridade durante uma janela de manutenção programada. Reconfigurar a prioridade pode forçar a primária atual a descer, levando a uma eleição. Antes de uma eleição, o primário fecha todas as conexões abertas do cliente.

members[n].priority e members[n].votes têm a seguinte relação:

  • Não votante (ou seja, votes é 0) membros devem ter priority de 0.

  • Membros com priority maior que 0 não podem ter 0 votes.

Dessa forma, aumentar o priority de um membro sem direito a voto requer a set de votes para 1 e aumenta o número de membros do conjunto de réplicas com direito a voto. Antes de aumentar a prioridade de um membro não votante, considere o seguinte:

  • Os conjuntos de réplica do MongoDB não podem ter mais de 7 membros de votação. Se o conjunto de réplicas já tiver 7 membros votantes, você não poderá modificar a prioridade de nenhum membro restante no conjunto de réplicas para ser maior que 0.

  • A reconfiguração da réplica não pode adicionar ou remover mais de um membro votante por vez. Para alterar vários membros sem direito a voto para que tenham prioridade maior que 0, emita uma série de operações replSetReconfig ou rs.reconfig() para modificar um membro de cada vez. Consulte Reconfiguration Can Add or Remove No More than One Voting Member at a Time (A reconfiguração pode adicionar ou remover no máximo um membro votante por vez) para obter mais informações.

Aviso

  • O método rs.reconfig() shell pode forçar o primário atual a se retirar, o que causa uma eleição. Quando as etapas primárias são desativadas, o mongod fecha todas as conexões do cliente. Embora isso normalmente leve de 10 a 20 segundos, tente fazer essas alterações durante os períodos de manutenção programados.

  • Evite reconfigurar conjuntos de réplicas que contenham membros de diferentes versões do MongoDB, pois as regras de validação podem diferir entre as versões do MongoDB.

1

No mongosh, utilize rs.conf() para recuperar a configuração do conjunto de réplicas e atribuí-la a uma variável. Por exemplo:

cfg = rs.conf()
2

Altere o valor members[n].priority de cada membro, conforme configurado na array members.

cfg.members[0].priority = 0.5
cfg.members[1].priority = 2
cfg.members[2].priority = 2

Esta sequência de operações modifica o valor de cfg para definir a prioridade para os três primeiros membros definidos na array members.

3

Use rs.reconfig() para aplicar a nova configuração.

rs.reconfig(cfg)

Esta operação atualiza a configuração do conjunto de réplicas utilizando a configuração definida pelo valor de cfg.

Voltar

Membros não votantes