Para reconfigurar un conjunto de réplicas cuando la mayoría de los miembros están disponibles, utilice el rs.reconfig()operación en el servidor principal actual, siguiendo el ejemplo del Procedimiento de reconfiguración del conjunto de réplicas.
Este documento proporciona pasos para reconfigurar un conjunto de réplicas cuando solo una minoría de miembros son accesibles.
Podría ser necesario utilizar este procedimiento, por ejemplo, en un conjunto de réplicas distribuido geográficamente, donde ningún grupo local de miembros puede alcanzar la mayoría. Consulte Elecciones de Conjuntos de Réplicas para obtener más información sobre esta situación.
Reconfigurar forzando la reconfiguración
Este procedimiento permite recuperarse mientras la mayoría de los miembros del conjunto de réplicas están inactivos o inaccesibles. Se conecta a cualquier miembro superviviente y usa la force opción del rs.reconfig() método.
La force opción fuerza una nueva configuración en el miembro. Utilice este procedimiento solo para recuperarse de interrupciones catastróficas. No utilice force cada vez que reconfigura. Tampoco utilice la force opción en scripts automáticos ni force cuando aún exista un servidor principal.
Advertencia
La reconfiguración forzada puede generar un comportamiento inesperado, incluida la reversión de "majority" escrituras confirmadas.
Para forzar la reconfiguración:
Respaldar a un miembro sobreviviente.
Conéctese a un miembro superviviente y guarde la configuración actual. Considere los siguientes comandos de ejemplo para guardar la configuración:
cfg = rs.conf() printjson(cfg) En el mismo miembro, elimine los miembros inactivos e inaccesibles del conjunto de réplicas de la
membersmatriz estableciendo la matriz como igual únicamente a los miembros supervivientes. Considere el siguiente ejemplo, que utiliza lacfgvariable creada en el paso anterior:cfg.members = [cfg.members[0] , cfg.members[4] , cfg.members[7]] En el mismo miembro, reconfigure el conjunto utilizando el comando con
rs.reconfig()laforceopción establecidatrueen:rs.reconfig(cfg, {force : true}) Esta operación obliga al secundario a usar la nueva configuración. Esta se propaga a todos los miembros supervivientes de la matriz
members. El conjunto de réplicas elige entonces un nuevo primario.Nota
Al usar
force : true, el número de versión en la configuración del conjunto de réplicas aumenta significativamente, en decenas o centenas de miles. Esto es normal y está diseñado para evitar colisiones de versiones del conjunto si, accidentalmente, se fuerzan reconfiguraciones en ambos lados de una partición de red y, posteriormente, la partición de red finaliza.Si la falla o partición fue solo temporal, apague o desactive los miembros eliminados lo antes posible.