rs.add()
Nesta página
Definição
rs.add(host, arbiterOnly)
Adiciona um membro a um conjunto de réplicas. Para executar o método, você deve conectar-se ao primário do conjunto de réplicas.
ParâmetroTipoDescriçãohost
string ou documentoO novo membro a adicionar ao conjunto de réplicas. Especifique como uma string ou um documento de configuração:
Se for um documento, especifique um documento de configuração do membro do definir de réplicas, conforme encontrado na array
members
. Você deve especificar o campohost
no documento de configuração do membro.{ _id: <int>, host: <string>, // required arbiterOnly: <boolean>, buildIndexes: <boolean>, hidden: <boolean>, priority: <number>, tags: <document>, secondaryDelaySecs: <int>, votes: <number> } Para uma descrição do campo de configuração, consulte
members
.Se uma string, especifique o nome do host e opcionalmente o número da porta para o novo membro.
arbiterOnly
booleanoOpcional. Aplica-se somente se o valor<host>
for uma string. Setrue
, o host adicionado é um árbitro.rs.add()
fornece um wrapper em torno de algumas das funcionalidades doreplSetReconfig
comando de banco de dados de dados e do assistente {mongosh
correspondenters.reconfig()
. Consulte o documento Configuração do conjunto de réplicas autogerenciado para obter a documentação completa de todas as opções de configuração do conjunto de réplicas.
Vinculação IP
Aviso
Antes de vincular sua instância a um endereço IP acessível publicamente, você deve proteger seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte Lista de verificação de segurança para implantações autogerenciadas. No mínimo, considere 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
que estão vinculados a localhost só aceitam conexões de clientes executados no mesmo computador. Este comportamento vinculativo inclui mongosh
e outros membros do seu conjunto de réplica 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.
Comportamento
rs.add()
pode, em alguns casos, acionar uma eleição para o primário que desconectará o shell (como adicionar um novo membro com uma prioridade mais alta do que o primário atual). Nesses casos, mongosh
pode exibir um erro, mesmo que a operação seja bem-sucedida.
Aviso
Antes do MongoDB 5.0, um secundário recém-adicionado ainda conta como membro votante, embora não possa servir leituras nem se tornar primário até que seus dados sejam consistentes. Se você estiver executando uma versão do MongoDB anterior à 5.0 e adicionar um secundário com suas configurações votes
e priority
maiores que zero, isso pode levar a um caso em que a maioria dos membros votantes está online, mas nenhum primário pode ser eleito. Para evitar tais situações, considere adicionar o novo secundário inicialmente com priority :0
e votes :0
. Em seguida, execute rs.status()
para garantir que o membro tenha feito a transição para o estado SECONDARY
. Por fim, use rs.reconfig()
para atualizar sua prioridade e votos.
Exemplo
Adicionar um secundário a um novo conjunto de réplicas
Para adicionar um novo membro secundário com configurações padrão de voto e prioridade a um novo conjunto de réplicas, você pode chamar o método rs.add()
com:
Documento de configuração do membro
rs.add( { host: "mongodbd4.example.net:27017" } ) Nome do host
rs.add( "mongodbd4.example.net:27017" )
Adicionar um secundário a um conjunto de réplicas existente
Adicione um novo membro secundário com configurações padrão de votação e prioridade a um conjunto de réplicas existente:
rs.add( { host: "mongodbd4.example.net:27017" } )
Aviso
Antes do MongoDB 5.0, um secundário recém-adicionado ainda conta como membro votante, embora não possa servir leituras nem se tornar primário até que seus dados sejam consistentes. Se você estiver executando uma versão do MongoDB anterior à 5.0 e adicionar um secundário com suas configurações votes
e priority
maiores que zero, isso pode levar a um caso em que a maioria dos membros votantes está online, mas nenhum primário pode ser eleito. Para evitar tais situações, considere adicionar o novo secundário inicialmente com priority :0
e votes :0
. Em seguida, execute rs.status()
para garantir que o membro tenha feito a transição para o estado SECONDARY
. Por fim, use rs.reconfig()
para atualizar sua prioridade e votos.
Adicionar um membro de prioridade 0 a um conjunto de réplicas
A seguinte operação adiciona uma instância do mongod
, executando no host mongodb4.example.net
e acessível na porta padrão 27017
, como um membro secundário de prioridade 0:
rs.add( { host: "mongodbd4.example.net:27017", priority: 0 } )
Você deve especificar o campo members[n].host
no documento de configuração do membro.
Consulte o members
para as definições de configuração do membro do conjunto de réplica disponível.
Adicionar um Árbitro a um Conjunto de Réplicas
A seguinte operação adiciona uma instância do mongod
, executando no host mongodb3.example.net
e acessível na porta padrão 27017
como um árbitro:
Documento de configuração do membro
rs.add( { host: "mongodb3.example.net:27017", arbiterOnly: true } ) Nome do host
rs.add("mongodb3.example.net:27017", true)
Veja também: