Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Docs Menu
Docs Home
/ /

getTransitionToDedicatedConfigServerStatus (database command)

getTransitionToDedicatedConfigServerStatus

Shows the status of the transition from an embedded config server to a dedicated config server.

The command returns ok: 0 with an error if the transition fails, otherwise it returns ok: 1.

To start transitioning to a dedicated config server, see the startTransitionToDedicatedConfigServer command.

New in version 8.3.

This command is available in deployments hosted in the following environments:

  • MongoDB Enterprise: The subscription-based, self-managed version of MongoDB

  • MongoDB Community: The source-available, free-to-use, and self-managed version of MongoDB

Note

This command is not supported in MongoDB Atlas. See Modify your Atlas Sharded Cluster to add or remove shards from your Atlas cluster.

The command has the following syntax:

db.adminCommand( {
getTransitionToDedicatedConfigServerStatus: 1
} )

This command returns the following output:

Field
Type
Description

msg

string

Provides the current draining operation being performed by the balancer.

state

string

Provides the status of the transition to a dedicated config server.

remaining

document

Shows the remaining tasks the balancer must perform to drain the shard before fully transitioning to a dedicated config server.

remaining.chunks

long

Indicates the number of chunks still on the shard.

remaining.dbs

long

Indicates the number of databases still on the shard.

remaining.jumboChunks

long

Indicates the number of large chunks still on the shard.

remaining.collectionsToMove

long

Indicates the number of collections still on the shard.

note

string

Provides additional message for the user.

dbsToMove

array

Indicates databases that use the draining shard as the primary shard. Before you can fully transition to a dedicated config server, you must manually move these databases to a new shard using the movePrimary command.

collectionsToMove

array

Indicates unsharded collections stored on the draining shard. Before you can fully transition to a dedicated config server, you must manually move these collections to another shard using the moveCollection command.

If you have authorization enabled, you must have the clusterManager role or any role that includes the removeShard action.

If the embedded config server is also the primary of one of the cluster's databases, then you must manually move the databases to a new shard after migrating all data from the shard. See the movePrimary command and the Remove Shards from a Sharded Cluster for more information.

If one of the unsharded collections is on the embedded config server, you must first migrate the collection to a different shard.

To migrate an unsharded collection, see the moveCollection command.

To start the transition to a dedicated config server, use the db.adminCommand() method to run the startTransitionToDedicatedConfigServer command:

db.adminCommand( { startTransitionToDedicatedConfigServer: 1 } )

To check the status of the draining operation, use the getTransitionToDedicatedConfigServerStatus command:

db.adminCommand( { getTransitionToDedicatedConfigServerStatus: 1 } )
{
"state" : "ongoing",
"remaining" : {
"chunks" : NumberLong(2),
"collectionsToMove" : NumberLong(1),
"dbs" : NumberLong(1),
"jumboChunks" : NumberLong(0),
"estimatedRemainingBytes" : NumberLong(18)
},
"msg" : "draining ongoing",
"dbsToMove" : [
"testDB"
],
"note" : "you need to call moveCollection for collectionsToMove and afterwards movePrimary for the dbsToMove",
"collectionsToMove" : [
"testDB.testCollUnsharded"
],
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1772210444, 27),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1772210444, 27)
}

Back

getShard Map

On this page