Definición
Nuevo en la versión 8.0.
A partir de MongoDB 8.0, puedes:
Configura un servidor de configuración para almacenar tus datos de la aplicación además de los metadatos habituales del clúster particionado. Un servidor de configuración que almacena datos de la aplicación se denomina partición de configuración.
Transición entre un fragmento de configuración y un servidor de configuración dedicado.
Cada clúster fragmentado requiere un servidor de configuración. Un fragmento de configuración funciona como un servidor de configuración. Utilice un fragmento de configuración en lugar de un servidor de configuración dedicado para reducir la cantidad de nodos necesarios y simplificar la implementación.
Un servidor de configuración dedicado requiere su propio conjunto de réplicas. Un fragmento de configuración combina la función de servidor de configuración con un conjunto de réplicas de fragmento existente, por lo que su clúster necesita menos conjuntos de réplicas y cuesta menos. El uso de un fragmento de configuración no tiene un impacto apreciable en el rendimiento con un número reducido de fragmentos.
Un servidor de configuración dedicado aÃsla los metadatos del clúster de los datos de la aplicación. Algunas funciones requieren este aislamiento. Para saber qué implementación se adapta mejor a su clúster, consulte los casos de uso de Config Shard.
El comando transitionToDedicatedConfigServer configura una partición de configuración para que se ejecute como un servidor de configuración dedicado. El comando hace que el balanceador dé prioridad a mover los fragmentos de la partición de configuración a otras particiones del clúster.
Antes de ejecutar transitionToDedicatedConfigServer, conecte con mongos y utilice la base de datos admin.
El clúster sharded debe tener la featureCompatibilityVersion establecida en al menos 8.0.
Sintaxis
Sintaxis del comando:
db.adminCommand( { transitionToDedicatedConfigServer: 1 } )
Comportamiento
El comando transitionToDedicatedConfigServer mueve los datos de la aplicación desde la partición de configuración a las demás particiones del mismo modo que removeShard mueve los datos. El balanceador mueve los datos de la colección particionada a otras particiones elegibles en el clúster. Debe mover los datos de la base de datos y la colección no particionados a una partición de su elección en el clúster. Para el procedimiento de remover una partición de configuración, consulta Remover particiones de un clúster.
Internamente, transitionToDedicatedConfigServer ejecuta el comando removeShard. transitionToDedicatedConfigServer devuelve la misma respuesta que removeShard. La respuesta después de un traslado de datos exitoso contiene state: "completed". Para obtener detalles completos de la respuesta y ejemplos, consulte Ejemplo removeShard. Revisa la documentación de removeShard antes de ejecutar transitionToDedicatedConfigServer para comprender cómo puede afectar tu implementación.
Si ejecuta transitionToDedicatedConfigServer dos veces y los datos de la partición se están moviendo actualmente a otras particiones, la segunda ejecución de transitionToDedicatedConfigServer devuelve el estado actual del movimiento de datos. transitionToDedicatedConfigServer devuelve la misma respuesta que removeShard.
Después de que transitionToDedicatedConfigServer complete el traslado de datos, el servidor de configuración se convierte en un servidor de configuración dedicado y ya no es una partición de configuración.
Control de acceso
Si el control de acceso está activado, el comando transitionToDedicatedConfigServer requiere la acción de autorización transitionToDedicatedConfigServer para el clúster:
{ resource: { cluster : true }, actions: [ "transitionToDedicatedConfigServer" ] }
El clusterManager rol tiene transitionToDedicatedConfigServer acción de autorización y se le puede asignar a un usuario.
El siguiente ejemplo asigna el rol clusterManager a un usuario llamado testUser:
db.grantRolesToUser( "testUser", [ "clusterManager" ] )
Ejemplo
El siguiente ejemplo configura una partición de configuración para que funcione como un servidor de configuración dedicado:
db.adminCommand( { transitionToDedicatedConfigServer: 1 } )
Para más detalles, consulte Degradar la compatibilidad de caracterÃsticas entre versiones.