Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
/ / /

Convertir set de réplicas en una partición de configuración incrustada

A partir de MongoDB 8.0, puedes configurar un servidor de configuración para almacenar los datos de tu aplicación, además de los habituales clúster particionado metadata. Un servidor de configuración que almacena datos de aplicaciones se denomina partición de configuración o servidor de configuración incrustado.

Convertir tu set de réplicas en un clúster con una partición de configuración incrustada puede reducir:

  • El número de nodos requeridos en su implementación.

  • Complejidad para mantener clústeres de una sola partición.

A partir de MongoDB 8.3, puedes convertir un set de réplicas directamente en un clúster con una configuración de partición incrustada.

Las versiones anteriores requieren que primero conviertas el replica set en un clúster con un replica set de servidor de configuración dedicado, y luego lo conviertas en uno con una partición de configuración incrustada.

Si el control de acceso está habilitado, el transitionFromDedicatedConfigServer comando requiere la acción de autorización transitionFromDedicatedConfigServer para el clúster.

El rol clusterManager tiene la acción de autorización transitionFromDedicatedConfigServer y puede asignarse a un usuario.

A partir de MongoDB 8.3, los conjuntos de réplicas que anteriormente eran clusters fragmentados no se pueden volver a convertir en conjuntos de réplicas.

La conversión de un clúster fragmentado en un conjunto de réplicas preserva los metadatos de particionado de su implementación anterior, incluido un document de identidad de partición, lo que impide que vuelva a convertirse en un clúster fragmentado. Si intentas una reconversión autogestionada a un clúster particionado, MongoDB devolverá un error.

Para convertir estos sets de réplicas en clústeres fragmentados, contacta con el soporte técnico.

El siguiente ejemplo convierte un set de réplicas autoadministrado en una partición de configuración que contiene datos de usuario preexistentes del set de réplicas.

1

Realice un reinicio en secuencia en el set de réplicas. Inicia cada nodo como un servidor de configuración en modo de mantenimiento:

  1. Detén cada nodo, empezando por los secundarios. Para apagar un servidor, utiliza el método db.shutdownServer().

    db.shutdownServer()
  2. Reinicie el nodo como una partición de configuración en modo de mantenimiento.

    mongod --config /etc/mongodb.conf --configsvr \
    --replicaSetConfigShardMaintenanceMode \
    --configsvr
    Inicie la instancia mongod como un servidor de configuración.
    --replicaSetConfigShardMaintenanceMode
    Activa el modo de mantenimiento de la partición de configuración, el cual desactiva algunas comprobaciones de inicio y permite convertir un servidor en una partición de configuración incrustada.
  3. Espere a que el nodo vuelva a unirse al set de réplicas antes de reiniciar el siguiente.

2

Utiliza el método rs.status() para identificar el nuevo nodo principal. Si tienes un set de réplicas grande, usa el método db.aggregate() para acotar tu búsqueda.

db.aggregate( [
{ $documents: rs.status().members },
{ $match: { stateStr: "PRIMARY" } },
{ $project: { _id: 1, name: 1 }
] )
[ { _id: 3, name: "192.0.2.3:27017" } ]
3

Conéctese al nodo primario y reconfigúrelo para que funcione como una partición de configuración incorporada:

  1. Utiliza el método rs.conf() para obtener la configuración actual y almacenarla en una variable:

    var conf = rs.conf()
  2. Establecer el campo configsvr:

    conf.configsvr = true
  3. Incremente el campo version:

    conf.version += 1
  4. Vuelva a configurar el nodo:

    rs.reconfig(conf)
  5. Espere a que las instancias secundarias repliquen el cambio. Puedes comprobar el estado ejecutando un pipeline de agregación en los documentos de los nodos:

    db.aggregate( [
    { $documents: rs.status().members },
    { $group: {
    _id: null,
    allConfigSvr: {
    $min: { $eq: ["$configsvr", true] }
    }
    } }
    ] )
    { _id: null, allConfigSvr: true }

    Cuando allConfigSvr muestra true, esto indica que la reconfiguración se ha propagado a todos los nodos del clúster.

4

Realiza una actualización progresiva para reiniciar el set de réplicas como servidor de configuración:

  1. Detén cada nodo, empezando por los secundarios. Para apagar un servidor, utiliza el método db.shutdownServer().

    db.shutdownServer()
  2. Reinicie el nodo como un servidor de configuración, que ya no esté en modo de mantenimiento:

    mongod --config /etc/mongodb.conf --configsvr
5

Iniciar el enrutador mongos:

mongos --config /etc/mongodb.conf
6

Conéctate a mongos y ejecuta el comando transitionFromDedicatedConfigServer para añadir la partición de configuración al cluster.

db.adminCommand( { transitionFromDedidcatedConfigServer: 1 } )
7

Actualiza tu aplicación para conectarte al router mongos en lugar de los miembros del conjunto de réplicas.

Volver

partición de configuración

En esta página