Definición
Nuevo en la versión 8.0.
A partir de MongoDB 8.0, puedes:
Configure 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 la aplicación se denomina partición de configuración.
Transicionar un servidor de configuración entre una partición de configuración y un servidor de configuración dedicado.
Un clúster requiere un servidor de configuración, pero puede ser una partición de configuración en lugar de un servidor de configuración dedicado. El uso de una partición de configuración reduce el número de nodos requeridos y puede simplificar su implementación.
Si su aplicación tiene requisitos exigentes de disponibilidad y resiliencia, considere implementar un servidor de configuración dedicado. Un servidor de configuración dedicado proporciona aislamiento, recursos dedicados y un rendimiento coherente para operaciones críticas del clúster.
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.