Definición
Novedad 8.0 en la versión.:
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.
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.
Una partición de configuración tiene un costo menor que un servidor de configuración dedicado porque un servidor de configuración dedicado se ejecuta como su propio set de réplicas. Una partición de configuración combina el rol de servidor de configuración en el set de réplicas de una partición existente, por lo tanto, su clúster necesita un set de réplicas en lugar de dos. El uso de una partición de configuración no tiene un impacto medible en el rendimiento con un número bajo de particiones. Un servidor de configuración dedicado aísla los metadatos del clúster de los datos de la aplicación, lo que requieren ciertas funcionalidades. Para saber qué implementación se adapta a tu clúster, consulta Casos de uso de Config partición.
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 de la partición de configuración a las demás particiones del clúster de la misma manera que el comando removeShard mueve los datos.
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.