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

Adicionar um Árbitro a um Conjunto de Réplicas Autogerenciadas

Nesta página

  • Considerações
  • Conjuntos de réplicas Primary-Secondary-Arbiter
  • Adicionar um arbiter

Em algumas circunstâncias (como se você tivesse um primário e um secundário, mas as restrições de custo proibissem a adição de outro secundário), você pode optar por adicionar uma instância mongod a um conjunto de réplicas como um árbitro para votar em eleições .

Os árbitros são instâncias mongod que fazem parte de um conjunto de réplicas, mas não armazenam dados (ou seja, não oferecem redundância de dados). No entanto, eles podem participar de eleições.

Os árbitros têm requisitos mínimos de recursos e não exigem hardware dedicado. Você pode implantar um árbitro em um servidor de aplicativos ou em um host de monitoramento.

Importante

Não execute um árbitro em sistemas que também hospedem os membros principais ou secundários do conjunto de réplicas.

Aviso

Não implemente mais de um árbitro por conjunto de réplicas.

Consulte também: Preocupações com vários árbitro

Se você estiver usando uma arquitetura PSA (primária-secundária-arbiter) de três membros, considere o seguinte:

  • A preocupação de gravação "majority" pode causar problemas de desempenho se um secundário não estiver disponível ou estiver atrasado. Para obter conselhos sobre como mitigar esses problemas, consulte Atenuar problemas de desempenho com um conjunto de réplicas de PSA autogerenciado.

  • Se você estiver usando um "majority" padrão global e o write concern for menor do que o tamanho da maioria, suas consultas poderão retornar dados obsoletos (não totalmente replicados).

Um árbitro não armazena dados, mas até que o processo mongod do árbitro seja adicionado ao conjunto de réplicas, o árbitro agirá como qualquer outro processo mongod e iniciará com um conjunto de arquivos de dados e com um diáriode tamanho normal.

Aviso

Antes de vincular a um não localhost (por exemplo, acessível IP ), certifique-se de ter protegido seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte a Lista de verificação de segurança para implementações autogerenciadas. No mínimo, procure habilitar a autenticação e fortalecer a infraestrutura de rede.

Os binários do MongoDB, mongod e mongos, são vinculados ao host local por padrão. Se a configuração do arquivo de configuração net.ipv6 ou a opção de linha de comando --ipv6 estiver definida para o binário, o binário também será vinculado ao endereço IPv6 do host local.

Por padrão, mongod e mongos vinculados ao localhost aceitam conexões apenas de clientes que estão sendo executados no mesmo computador. Esse comportamento de vinculação inclui mongosh e outros membros do seu conjunto de réplicas ou cluster fragmentado. Clientes remotos não podem se conectar a binários vinculados apenas ao localhost.

Para substituir a associação padrão e vincular a outros endereços IP, use a net.bindIp configuração do arquivo de configuração ou a --bind_ip opção de linha de comando para especificar uma lista de nomes de host ou endereços IP.

Aviso

A partir do MongDB 5.0, DNS de horizonte dividido nós que são configurados apenas com um endereço IP falham na validação de inicialização e relatam um erro. Consulte disableSplitHorizonIPCheck.

Por exemplo, a instância mongod a seguir é vinculada ao host local e ao nome de host My-Example-Associated-Hostname, que está associado ao endereço IP 198.51.100.1:

mongod --bind_ip localhost,My-Example-Associated-Hostname

Para se conectar a esta instância, os clientes remotos devem especificar o nome do host ou seu endereço IP associado 198.51.100.1:

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1

Importante

Para evitar atualizações de configuração devido a alterações de endereço IP, use nomes de host DNS em vez de endereços IP. É particularmente importante usar um nome de host DNS em vez de um endereço IP ao configurar membros de conjunto de réplicas ou membros de cluster fragmentado.

Use nomes de host em vez de endereços IP para configurar cluster em um horizonte de rede dividido. Começando no MongoDB 5.0, nós configurados apenas com um endereço IP falham na validação de inicialização e não são iniciados.

Aviso

Não implemente mais de um árbitro por conjunto de réplicas.

Consulte também: Preocupações com vários árbitro

Importante

Para evitar atualizações de configuração devido a alterações de endereço IP, use nomes de host DNS em vez de endereços IP. É particularmente importante usar um nome de host DNS em vez de um endereço IP ao configurar membros de conjunto de réplicas ou membros de cluster fragmentado.

Use nomes de host em vez de endereços IP para configurar cluster em um horizonte de rede dividido. Começando no MongoDB 5.0, nós configurados apenas com um endereço IP falham na validação de inicialização e não são iniciados.

  1. Criar um diretório de dados (por exemplo, storage.dbPath) para o arbiter. A instância do mongod utiliza o diretório para dados de configuração. O diretório não manterá o conjunto de dados. Por exemplo, crie o diretório /var/lib/mongodb/arb:

    mkdir /var/lib/mongodb/arb
  2. Inicie o arbiter especificando o diretório de dados e o nome do conjunto de réplicas para participar. O seguinte inicia um arbiter usando o /var/lib/mongodb/arb como dbPath e rs para o nome do conjunto de réplicas:

    Aviso

    Antes de vincular a um não localhost (por exemplo, acessível IP ), certifique-se de ter protegido seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte a Lista de verificação de segurança para implementações autogerenciadas. No mínimo, procure habilitar a autenticação e fortalecer a infraestrutura de rede.

    mongod --port 27017 --dbpath /var/lib/mongodb/arb --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  3. Conecte-se ao primary e adicione o arbiter ao conjunto de réplicas. Use o método rs.addArb(), como no exemplo a seguir, que pressupõe que m1.example.net é o nome do host associado ao endereço IP especificado para o arbiter:

    rs.addArb("m1.example.net:27017")

    Esta operação adiciona o árbitro em execução na porta 27017 no host do m1.example.net.

Voltar

Adicionar membros.