Definición
rs.remove(hostname)Elimina el nodo descrito por el parámetro
hostnamedel actual set de réplicas. Esta función desconectará el shell brevemente y forzará una reconexión mientras el set de réplicas vuelve a negociar qué nodo será primario. Como resultado, la shell mostrará un error incluso si este comando se ejecuta correctamente.El método
rs.remove()tiene el siguiente parámetro:ParameterTipoDescripciónhostnamestring
El nombre de host de un sistema en el set de réplicas.
Nota
Antes de ejecutar la operación
rs.remove(), es una buena práctica apagar el integrante del set de réplicas que vas a remover.
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Comportamiento
Global nivel de confirmación de escritura (write concern)
Remover un nodo cambia el número de nodos votantes en el set de réplicas, lo que puede cambiar el nivel de confirmación de escritura implícito por defecto (write concern).
Debe establecer explícitamente el nivel de confirmación de escritura (write concern) global por defecto antes de intentar reconfigurar un set de réplicas con una configuración que cambiaría el nivel de confirmación de escritura (write concern) implícito por defecto. Para establecer el nivel de confirmación de escritura (write concern) global por defecto, utilice el comando setDefaultRWConcern.
La eliminación espera hasta que una mayoría de los nodos instalen la configuración de la réplica
rs.remove() ejecuta el comando replSetReconfig con una configuración que omite el nodo eliminado. El método espera hasta que la mayoría de los nodos votantes del set de réplicas implementen la nueva configuración de réplica antes de devolver el éxito. Un nodo votante es cualquier nodo del set de réplicas donde members[n].votes es 1, incluidos los árbitros. Para aprender cómo los nodos del set de réplicas instalan una nueva configuración, consulte La reconfiguración espera hasta que la mayoría de los nodos instale la configuración de réplica.
rs.remove() no acepta un límite de maxTimeMS. Si una mayoría de los nodos votantes nunca instala la nueva configuración, la operación espera indefinidamente.
Conexiones al nodo eliminado
Por defecto, los nodos del set de réplicas esperan 5 minutos antes de cerrar las conexiones al nodo eliminado. En sets de réplicas particionados, se puede modificar este tiempo de espera mediante el parámetro del servidor ShardingTaskExecutorPoolHostTimeoutMS.
Para descartar inmediatamente todas las conexiones salientes del set de réplicas al nodo eliminado, ejecutar el comando administrativo dropConnections en cada nodo restante del set de réplicas:
db.adminCommand( { "dropConnections" : 1, "hostAndPort" : [ "<hostname>:<port>" ] } )
Reemplaza <hostname> con el nombre de host del nodo eliminado y <port> con el puerto en el que escuchaba el mongod.