A partir de la versión 2.0, MongoDB admite replicación encadenada. Una replicación encadenada ocurre cuando un El miembro secundario replica a partir de otro miembro secundario en vez de hacerlo del primario. Este podría ser el caso, por ejemplo, si un secundario selecciona su fuente de replicación en función del tiempo de ping y si el nodo más cercano es otro secundario. La fuente de replicación para la operación es el nodo desde el cual se leen los datos.
La replicación encadenada puede reducir la carga en la red principal. Sin embargo, también puede generar un mayor retraso en la replicación, dependiendo de la topología de la red.
Puedes utilizar el configuración settings.chainingAllowed en Configuración del conjunto de réplicas autogestionadas para desactivar la replicación en cadena en situaciones en las que esta replicación esté causando un retardo.
MongoDB permite la replicación encadenada por defecto. Este procedimiento describe cómo desactivarlo y cómo volver a activarlo.
Nota
Si deshabilitas la replicación encadenada, el comando replSetSyncFrom y el método rs.syncFrom() no tienen efecto.
Deshabilitar la replicación encadenada
Para desactivar la replicación encadenada, establece el campo settings.chainingAllowed en Configuración del conjunto de réplicas autogestionado en false.
Puedes utilizar la siguiente secuencia de comandos para establecer settings.chainingAllowed en false:
Copia la configuración en el objeto
cfg:cfg = rs.config() Toma nota de si la configuración contiene el documento incrustado
settings. Si es así, salta este paso.Advertencia
Para evitar la pérdida de datos, omite este paso si la configuración contiene el documento incrustado
settings.Si la configuración actual no contiene el
settingsdocumento incrustado, cree el documento incrustado emitiendo el siguiente comando:cfg.settings = { } Emite la siguiente secuencia de comandos para establecer
settings.chainingAllowedenfalse:cfg.settings.chainingAllowed = false rs.reconfig(cfg)
Rehabilitar la Replicación Encadenada
Para volver a habilitar la replicación encadenada, establece settings.chainingAllowed en true. Puedes usar la siguiente secuencia de comandos:
cfg = rs.config() cfg.settings.chainingAllowed = true rs.reconfig(cfg)