Un miembro oculto mantiene una copia de la El conjunto de datos del primario pero es invisible para las aplicaciones cliente. Los miembros ocultos son buenos para cargas de trabajo con diferentes patrones de uso a los de los demás miembros en el set de réplicas. Los miembros ocultos siempre deben ser miembros de prioridad 0 y, por lo tanto, no pueden convertirse en primarios. El El método db.hello() no muestra los miembros ocultos. Sin embargo, los miembros ocultos pueden votar en elecciones.
En el siguiente set de réplicas de cinco nodos, los cuatro nodos secundarios tienen copias del conjunto de datos del primario, pero uno de los nodos secundarios está oculto.
Comportamiento
Operaciones de lectura
Solo puedes leer de un miembro oculto si te conectas directamente al nodo. Si te conectas a un clúster sin conectarte directamente al nodo oculto, no podrás ejecutar consultas en el nodo oculto. Como resultado, estos nodos no reciben tráfico aparte de la replicación básica. Utilice miembros ocultos para tareas dedicadas, como reportes y copias de seguridad.
Importante
Si tu set de réplicas contiene miembros atrasados, asegúrate de que los miembros atrasados estén ocultos y no tengan derecho a voto.
Ocultar nodos retrasados del set de réplicas impide que las aplicaciones visualicen y consulten datos retrasados sin una conexión directa a ese nodo. Hacer que los integrantes de set de réplicas retardados no tengan derecho a voto significa que no contarán para reconocer las operaciones de escritura con nivel de confirmación de escritura (write concern) "majority".
Si no ocultas a los miembros atrasados y uno o más nodos dejan de estar disponibles, el set de réplicas debe esperar al miembro atrasado y el punto de confirmación se retrasa. Un punto de confirmación retrasado puede provocar problemas de rendimiento.
Por ejemplo, considere una configuración de conjunto de réplicas primaria-secundaria-retrasada donde la secundaria retrasada vota con un retraso de 10 minutos.
Con una secundaria no demorada no disponible, la configuración degradada de Primary-Delayed debe esperar al menos 10 minutos para reconocer una operación de escritura con "majority".El punto de confirmación mayoritaria tardará más en avanzar, lo que provocará una presión similar sobre la caché y problemas de rendimiento en un set de réplicas Primary with a Secondary and an Arbiter (PSA).
Para obtener más información sobre el punto de confirmación mayoritario, consulte coherencia causal y preocupaciones de lectura y escritura. Para obtener detalles adicionales sobre la resolución de problemas de rendimiento, consulta el tutorial de mantenimiento del set de réplicas.
En un clúster, mongos no interactúan con los miembros ocultos.
Votación
Los miembros ocultos pueden votar en elecciones de sets de réplicas. Si suspendes a un miembro oculto que tiene derecho a voto, asegúrate de que el conjunto tenga una mayoría activa o el primario renunciará.
Para efectos de copias de seguridad,
db.fsyncLock()asegura que los archivos de datos sean seguros para copiar utilizando utilidades de copia de seguridad de bajo nivel comocp,scpotar. Unmongodempezó a utilizar los archivos copiados que contienen datos escritos por el usuario que son indistinguibles de los datos escritos por el usuario en elmongodbloqueado.Los archivos de datos de un bloqueado pueden cambiar
mongoddebido a operaciones como sincronizaciones de registro o instantáneas de WiredTiger. Si bien esto no afecta a los datos lógicos (por ejemplo, a los que acceden los clientes), algunas utilidades de copia de seguridad pueden detectar estos cambios y emitir advertencias o errores. Para obtener más información sobre las utilidades y procedimientos de copia de seguridad recomendados por MongoDB, consulte Métodos de copia de seguridad para una implementación autogestionada.
Nivel de confirmación de escritura
Miembros ocultos del set de réplicas pueden reconocer operaciones de guardar emitidas con w: <number>. Para las operaciones de escritura emitidas con w : "majority", sin embargo, los miembros ocultos también deben ser miembros con derecho a voto (es decir, members[n].votes mayor que 0) para reconocer la operación de guardar "majority". Miembros del set de réplicas sin derecho a voto (es decir, members[n].votes es 0) no pueden contribuir a reconocer operaciones de escritura con nivel de confirmación de escritura (write concern) majority.
Lectura adicional
Para obtener más información sobre cómo realizar copias de seguridad de bases de datos MongoDB,consulte Métodos de copia de seguridad para una implementación autogestionada. Para configurar un miembro oculto, consulte Configurar un miembro oculto del conjunto de réplicas autogestionadas.