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

Impedir que um secundário autogerenciado se torne primary

Nesta página

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

Em um conjunto de réplicas, por padrão, todos os membros secundários são elegíveis para se tornarem primários por meio do processo de eleição. Você pode usar priority para afetar o resultado dessas eleições, deixando alguns membros mais propensos a se tornarem primários e outros menos propensos ou incapazes de se tornarem primários.

Os secundários que não podem se tornar primários também não conseguem desencadear eleições. Em todos os outros aspectos esses segundários são idênticos a outros segundários.

Para evitar que um membro secundário se torne primário em um failover, atribua ao secundário uma prioridade de 0, conforme descrito aqui. Para obter uma descrição detalhada dos membros somente secundários e suas finalidades, consulte Membros do conjunto de réplicas de prioridade 0.

Ao atualizar o objeto de configuração da réplica, acesse os membros do conjunto de réplicas na array members com o índice da array. O índice da array começa com 0. Não confunda esse valor de índice com o valor do campo members[n]._id em cada documento da array members.

Observação

O MongoDB não permite que o primário atual tenha uma prioridade de 0. Para evitar que o primário atual se torne novamente um primário, você deve primeiro reduzir o primário atual usando rs.stepDown().

Este tutorial utiliza uma amostra de réplica configurada com 5 membros.

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

O método rs.conf() retorna um documento de configuração do conjunto de réplica que contém a configuração atual para um conjunto de réplicas.

Em mongosh, quando conectado a um primary, execute o método rs.conf() e atribua o resultado a uma variável:

cfg = rs.conf()

O documento retornado contém um campo members que contém uma array de documentos de configuração de membro, um documento para cada membro do conjunto de réplicas.

2

Para evitar que um nó secundário se torne um primary, atualize o nó secundário members[n].priority para 0.

Para atribuir um valor de prioridade a um membro do conjunto de réplicas, acesse o documento de configuração do membro usando o índice da array. Neste tutorial, o membro secundário a ser alterado corresponde ao documento de configuração encontrado na posição 2 da array members.

cfg.members[2].priority = 0

A alteração de configuração não entra em vigor até que você reconfigure o conjunto de réplica.

3

Use o método rs.reconfig() para reconfigurar o conjunto de réplicas com o documento de configuração do conjunto de réplicas atualizado.

Passe a variável cfg para o método rs.reconfig():

rs.reconfig(cfg)

Voltar

Ajustar prioridade do membro