Docs Menu
Docs Home
/

Reemplaza un servidor de configuración autogestionado

Importante

El siguiente procedimiento se aplica a los servidores de configuración 7.0. Para versiones anteriores de MongoDB, consulte la versión correspondiente del Manual de MongoDB.

Si el conjunto de réplicas del servidor de configuración pasa a ser de solo lectura, es decir, no tiene un servidor principal, el clúster fragmentado no podrá realizar operaciones que modifiquen los metadatos del clúster, como divisiones y migraciones de fragmentos. Aunque no se puedan dividir ni migrar fragmentos, las aplicaciones podrán escribir datos en el clúster fragmentado.

Si uno de los servidores de configuración no está disponible o no funciona, repárelo o reemplácelo lo antes posible. El siguiente procedimiento reemplaza a un miembro de un Conjunto de réplicas del servidor de configuración con un nuevo miembro.

Este tutorial es específico para MongoDB 7.0. Para versiones anteriores de MongoDB, consulte la versión correspondiente del Manual de MongoDB.

Las siguientes restricciones se aplican a una configuración de conjunto de réplicas cuando se utiliza para servidores de configuración:

1

Inicie una instancia, especificando mongod las --configsvr --replSetopciones,, --bind_ip y otras opciones según corresponda a su implementación.

Advertencia

Antes de vincular la instancia a una dirección IP de acceso público, se debe asegurar el clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, se debe consultar Checklist de seguridad para implementaciones autogestionadas. Como mínimo, se debe considerar habilitar la autenticación y reforzar la infraestructura de red.

mongod --configsvr --replSet <replicaSetName> --bind_ip localhost,<hostname(s)|ip address(es)>
2

Conectar mongosh al servidor principal del conjunto de réplicas de configuración y use rs.add() para agregar el nuevo miembro.

Advertencia

Antes de MongoDB,5.0 un miembro secundario recién añadido seguía contando como miembro con derecho a voto, aunque no pudiera realizar lecturas ni convertirse en miembro principal hasta que sus datos fueran consistentes. Si ejecuta una versión de MongoDB anterior a 5.0 y añade un miembro secundario votes con sus valores y priority mayores que cero, esto puede provocar que la mayoría de los miembros con derecho a voto estén conectados, pero no se pueda elegir ningún miembro principal. Para evitar estas situaciones, considere añadir el nuevo miembro secundario inicialmente con priority :0 votes :0y. A continuación, ejecute rs.status() para asegurarse de que el miembro haya pasado al SECONDARY estado. Finalmente, utilice rs.reconfig() para actualizar su prioridad y votos.

rs.add( { host: "<hostnameNew>:<portNew>", priority: 0, votes: 0 } )

El proceso de sincronización inicial copia todos los datos de un miembro del conjunto de réplicas del servidor de configuración al nuevo miembro sin reiniciar.

mongos Las instancias reconocen automáticamente el cambio en los miembros del conjunto de réplicas del servidor de configuración sin reiniciar.

3
  1. Asegúrese de que el nuevo miembro haya alcanzado el estado. Para comprobar el estado de los miembros del conjunto de SECONDARY réplicas,rs.status() ejecute:

    rs.status()
  2. Reconfigurar el conjunto de réplicas para actualizar los votos y la prioridad del nuevo miembro:

    var cfg = rs.conf();
    cfg.members[n].priority = 1; // Substitute the correct array index for the new member
    cfg.members[n].votes = 1; // Substitute the correct array index for the new member
    rs.reconfig(cfg)

    donde n es el índice de la matriz del nuevo miembro en la matriz.members

Advertencia

  • El rs.reconfig() método de shell puede forzar la desconexión del servidor principal actual, lo que provoca una elección. Cuando la desconexión del servidor principal se produce, el mongod método cierra todas las conexiones de cliente. Aunque esto suele tardar 10entre y20 segundos, intente realizar 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.

4

Si reemplaza el miembro principal, baje primero el primario antes de apagarlo.

5

Una vez completada la sincronización inicial del servidor de configuración de reemplazo, desde una sesión que esté mongosh rs.remove() conectada al servidor principal, use para eliminar el miembro antiguo.

rs.remove("<hostnameOld>:<portOld>")

mongos Las instancias reconocen automáticamente el cambio en los miembros del conjunto de réplicas del servidor de configuración sin reiniciar.

6

Con servidores de configuración de conjunto de réplicas, las mongos instancias especifican en la --configdb configuración o el nombre del conjunto de réplicas del servidor de configuración y al menos uno de los miembros del conjunto de réplicas.sharding.configDB

Por lo tanto, si la instancia mongos no especifica el miembro eliminado del conjunto de réplicas en el --configdb o la configuración sharding.configDB, no es necesaria ninguna acción adicional.

Sin embargo, si una instancia especificó el miembro eliminado en la mongos configuración --configdb configDB o, puede:

  • Actualice la configuración para la próxima vez que reinicie el,mongos o

  • Modifique la entrada DNS que apunta al sistema que proporcionó el servidor de configuración anterior, de modo que el mismo nombre de host apunte al nuevo servidor de configuración.

Volver

Resharding para agregar y remover particiones

En esta página