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.The
rs.remove()method has the following parameter:ParâmetroTipoDescriçãohostnamestring
O nome do host de um sistema no conjunto de réplicas.
Observação
Before running the
rs.remove()operation, it is good practice to shut down the replica set member that you are removing.
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() runs the replSetReconfig command with a configuration that omits the removed member. The method waits until a majority of voting replica set members install the new replica configuration before it returns success. A voting member is any replica set member where members[n].votes is 1, including arbiters. To learn how replica set members install a new configuration, see Reconfiguration Waits Until a Majority of Members Install the Replica Configuration.
rs.remove() does not accept a maxTimeMS limit. If a majority of voting members never install the new configuration, the operation waits indefinitely.
Conexões com o nó 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.