Los miembros ocultos son parte de un set de réplicas pero no puede convertirse en primario y es invisible para las aplicaciones cliente. Los miembros ocultos pueden votar en elecciones. Para obtener más información sobre los miembros ocultos y sus usos, consulte Miembros ocultos de un set de réplicas.
Considerations
El uso más común de los nodos ocultos es permitir las copias de seguridad.
También puedes usar nodos ocultos para admitir miembros atrasados. Sin embargo, si solo necesitas evitar que un nodo se convierta en principal, configura un nodo con prioridad 0.
Si el settings.chainingAllowed La configuración permite que los miembros secundarios sincronicen desde otros secundarios, MongoDB por defecto prefiere miembros no ocultos sobre miembros ocultos al seleccionar un objetivo de sincronización. MongoDB solo elegirá miembros ocultos como último recurso. Si deseas que una secundaria se sincronice desde un miembro oculto, utiliza el comando de base de datos replSetSyncFrom para anular el objetivo de sincronización predeterminado. Consulta la documentación de replSetSyncFrom antes de utilizar el comando.
Ejemplos
Documento de configuración de nodos
Para configurar a un nodo secundario como oculto, establece su valor members[n].priority en 0 y su valor members[n].hidden en true en su configuración de nodo:
{ "_id" : <num> "host" : <hostname:port>, "priority" : 0, "hidden" : true }
Procedimiento de configuración
El siguiente ejemplo oculta el miembro secundario actualmente en el índice 0 en el arreglo members. Para configurar un miembro oculto, utiliza la siguiente secuencia de operaciones en una sesión de mongosh que esté conectada al primario, especificando el miembro a configurar por su índice en el members arreglo:
cfg = rs.conf() cfg.members[0].priority = 0 cfg.members[0].hidden = true rs.reconfig(cfg)
Después de reconfigurar el conjunto, este miembro secundario tiene una prioridad de 0 de modo que no pueda convertirse en primario y esté oculto. Los otros nodos del conjunto no anunciarán el miembro oculto en el comando hello o en la salida del método db.hello().
Al actualizar el objeto de configuración del set de réplicas, accede a los miembros del set de réplicas en el arreglo members con el índice del arreglo. El índice del arreglo comienza con 0. No confunda este valor de índice con el valor del campo members[n]._id en cada documento de la arreglo members.
Advertencia
El método de shell
rs.reconfig()puede forzar el traspaso del primario actual, lo que provoca una elección. Cuando el primario renuncia, elmongodcierra todas las conexiones de los clientes. Aunque esto generalmente toma entre 10 y 20 segundos, intente hacer estos cambios durante los periodos de mantenimiento programados.Evitar reconfigurar sets de réplicas que contengan miembros de diferentes versiones de MongoDB, ya que las reglas de validación pueden diferir entre versiones de MongoDB.