Ajustar prioridade para um membro autogerenciado do conjunto de réplicas
Nesta página
Visão geral
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.
Considerações
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.
Prioridade e votos
members[n].priority
e members[n].votes
têm a seguinte relação:
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çõesreplSetReconfig
ours.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.
Procedimento
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, omongod
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.
Altere o valor de prioridade de cada associado.
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
.
Atribua o conjunto de réplica à nova configuração.
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
.