Definition
New in version 8.0.
Starting in MongoDB 8.0, you can:
Configure a config server to store your application data in addition to the usual sharded cluster metadata. A config server that stores application data is called a config shard.
Transition a config server between being a config shard and a dedicated config server.
A cluster requires a config server, but it can be a config shard instead of a dedicated config server. Using a config shard reduces the number of nodes required and can simplify your deployment.
If your application has demanding availability and resiliency requirements, consider deploying a dedicated config server. A dedicated config server provides isolation, dedicated resources, and consistent performance for critical cluster operations.
The transitionFromDedicatedConfigServer command configures a
dedicated config server to run as a config shard.
Before you run transitionFromDedicatedConfigServer, connect to
mongos and use the admin database.
The sharded cluster must have featureCompatibilityVersion set to at least 8.0.
Syntax
Command syntax:
db.adminCommand( { transitionFromDedicatedConfigServer: 1 } )
Behavior
The transitionFromDedicatedConfigServer command adds the config
server as a shard in the cluster. Internally,
transitionFromDedicatedConfigServer runs the addShard command.
To confirm that a sharded cluster uses a config shard, run the
listShards command against the admin database while
connected to a mongos and inspect the output for a document
where _id is set to "config". If the listShards output does
not contain a document where _id is set to "config", the cluster
does not use a config shard.
For details, see Confirm use of Config Shard.
If you must downgrade the feature compatibility version below 8.0, first run the
transitionToDedicatedConfigServer command. For downgrade
details, see
Downgrade Feature Compatibility Version.
Access Control
If access control is enabled, the
transitionFromDedicatedConfigServer command requires the
transitionFromDedicatedConfigServer authorization action
for the cluster:
{ resource: { cluster : true }, actions: [ "transitionFromDedicatedConfigServer" ] }
The clusterManager role has
transitionFromDedicatedConfigServer authorization action and can be
assigned to a user.
The following example assigns the clusterManager role to a user
named testUser:
db.grantRolesToUser( "testUser", [ "clusterManager" ] )
Example
The following example configures a dedicated config server to run as a config shard:
db.adminCommand( { transitionFromDedicatedConfigServer: 1 } )