A partir de MongoDB 8.0, puede configurar un servidor de configuración para almacenar los datos de su 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 un servidor de configuración embebido puede reducir:
La cantidad de nodos necesarios en su implementación.
Complejidad para mantener clústeres de un solo fragmento.
Acerca de esta tarea
No se puede convertir directamente un set de réplicas en una partición de configuración. Para convertir un set de réplicas en un servidor de configuración embebido, debes:
Convierta su set de réplicas en un clúster fragmentado con un servidor de configuración dedicado.
Configure el servidor de configuración dedicado para que se ejecute como un fragmento de configuración utilizando el
transitionFromDedicatedConfigServerdominio.El comando
transitionFromDedicatedConfigServeragrega el servidor de configuración como una partición en el clúster.
Reducí la cantidad de particiones en el clúster después de agregar la partición de configuración.
Control de acceso
Si el control de acceso está habilitado, el comando transitionFromDedicatedConfigServer requiere la acción de autorización transitionFromDedicatedConfigServer para la clúster.
El rol clusterManager tiene la acción de autorización transitionFromDedicatedConfigServer y puede asignarse a un usuario.
Pasos
El siguiente ejemplo convierte un conjunto de réplicas autoadministrado en una partición de configuración que contiene datos de usuario preexistentes del conjunto de réplicas.
Convierta su conjunto de réplicas en un clúster fragmentado con un servidor de configuración dedicado
Este tutorial presupone que sabe cómo convertir su conjunto de réplicas autoadministradas en un clúster fragmentado. Para obtener instrucciones completas, consulte Convertir un conjunto de réplicas autoadministradas en un clúster fragmentado.
Ejecute el comando transitionFromDedicatedConfigServer
Para configurar su servidor de configuración dedicado para que funcione como una partición de configuración, ejecute el comando transitionFromDedicatedConfigServer desde la base de datos admin:
db.adminCommand( { transitionFromDedicatedConfigServer: 1 } )
Verifica que el servidor de configuración sea ahora una partición de configuración
Usted puede confirmar que un clúster particionado utiliza una partición de configuración mediante uno de los siguientes métodos:
Ejecuta el método
sh.isConfigShardEnabled()enmongosh. Si la salida desh.isConfigShardEnabled()contieneenabled: true, el clúster utiliza una partición de configuración. Si la salida contieneenabled: false, el clúster no utiliza una partición de configuración.Ejecútate el comando
listShardscontra la base de datosadminmientras estés conectada a unmongose inspecciona la salida para encontrar un documento donde_idesté configurado en"config". Si la salida delistShardsno contiene un documento donde_idesté configurado en"config", el clúster no utiliza una partición de configuración.
El siguiente ejemplo ejecuta el comando listShards e intenta encontrar un documento donde _id esté establecido en "config".
db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")
En este ejemplo, el documento devuelto tiene _id asignado a "config", lo que confirma que este clúster utiliza una partición de configuración.
{ _id: "config", host: "configRepl/localhost:27018", state: 1, topologyTime: Timestamp({ t: 1732218671, i: 13 }), replSetConfigVersion: Long('-1') }
Nota
Si el balanceador está en funcionamiento, migra automáticamente los datos entre las particiones. De lo contrario, utiliza los comandos moveCollection o moveChunk para distribuir tus datos manualmente.
Reduzca la cantidad de fragmentos en su clúster a uno
Para reducir el clúster a una única partición después de añadir la partición de configuración, mueve todas las colecciones sin sharding a la partición de configuración usando el comando moveCollection y remueve la primera partición en el clúster con el comando removeShard. Este paso reduce tu clúster a una única partición de configuración.
Para obtener instrucciones completas sobre cómo eliminar fragmentos en su clúster, consulte Eliminar fragmentos de un clúster fragmentado.