Definição
rs.remove(hostname)Remove o membro descrito pelo parâmetro
hostnamedo conjunto de réplica atual. Essa função desconectará o shell brevemente e forçará uma reconexão à medida que o conjunto de réplicas renegociar qual membro será o principal. Como resultado, o shell exibirá um erro mesmo se este comando for bem-sucedido.O método
rs.remove()tem o seguinte parâmetro:ParâmetroTipoDescriçãohostnamestring
O nome do host de um sistema no conjunto de réplicas.
Observação
Antes de executar a operação
rs.remove(), é uma boa prática desligar o membro do conjunto de réplicas que você está removendo.
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Comportamento
Preocupação global com gravação
Remover um nó altera o número de nós de votação no conjunto de réplicas, o que pode alterar o write concern padrão implícito.
Você deve definir explicitamente o padrão global write concern antes de tentar reconfigurar um conjunto de réplicas com uma configuração que alteraria o write concern padrão implícito. Para definir a write concern padrão global, utilize o comando setDefaultRWConcern.
A remoção espera até que uma maioria dos nós instale a configuração da réplica
rs.remove() executa o comando replSetReconfig com uma configuração que omite o membro removido. O método espera até que a maioria dos membros do conjunto de réplicas votantes instale a nova configuração de réplica antes de retornar o sucesso. Um membro votante é qualquer membro do conjunto de réplicas em que members[n].votes é 1, incluindo árbitros. Para saber como os membros do conjunto de réplicas instalam uma nova configuração, consulte A reconfiguração aguarda até que uma maioria dos membros instale a configuração da réplica.
rs.remove() não aceita um limite de maxTimeMS. Se a maioria dos membros votantes nunca instalar a nova configuração, a operação aguardará indefinidamente.
Conexões com o membro removido
Por padrão, os membros do conjunto de réplicas aguardam 5 minutos antes de descartar conexões com o membro removido. Em conjuntos de réplicas fragmentadas, você pode modificar esse tempo limite usando o parâmetroShardingTaskExecutorPoolHostTimeoutMS server.
Para descartar imediatamente todas as conexões de saída do conjunto de réplicas para o nó removido, execute o comando administrativo dropConnections em cada nó restante no conjunto de réplicas:
db.adminCommand( { "dropConnections" : 1, "hostAndPort" : [ "<hostname>:<port>" ] } )
Substitua <hostname> pelo nome do host do membro removido e <port> pela porta em que o mongod ouviu.