> For the complete MongoDB documentation index, see www.mongodb.com/docs/llms.txt

# startTransitionToDedicatedConfigServer (database command)

## Definition

Starts the transition from an embedded config server to a dedicated config server.

When the command runs, it tells the balancer that you want to start the transition to a dedicated config server. Asynchronously, the balancer then begins moving chunks from the shard to other shards in the cluster. Once the balancer has finished this process and you have manually migrated any unsharded collections to a different shard, you can safely remove it from the cluster because it no longer contains data. See the [`moveCollection`](https://www.mongodb.com/docs/manual/reference/command/movecollection.md#mongodb-dbcommand-dbcmd.moveCollection) command for more information.

**Note:**

You must enable the balancer for `startTransitionToDedicatedConfigServer` to move chunks off the embedded config server shard. If you disable the balancer, no chunks migrate and [`getTransitionToDedicatedConfigServerStatus`](https://www.mongodb.com/docs/manual/reference/command/gettransitiontodedicatedconfigserverstatus.md#mongodb-dbcommand-dbcmd.getTransitionToDedicatedConfigServerStatus) continues to report remaining work on the shard.

The command returns an error if the transition fails, otherwise it returns `ok`.

To stop the in-progress transition from an embedded config server to a dedicated config server, see the [`stopTransitionToDedicatedConfigServer`](https://www.mongodb.com/docs/manual/reference/command/stoptransitiontodedicatedconfigserver.md#mongodb-dbcommand-dbcmd.stopTransitionToDedicatedConfigServer) command.

To show the status of the transition from an embedded config server to a dedicated config server, see the [`getTransitionToDedicatedConfigServerStatus`](https://www.mongodb.com/docs/manual/reference/command/gettransitiontodedicatedconfigserverstatus.md#mongodb-dbcommand-dbcmd.getTransitionToDedicatedConfigServerStatus) command.

To commit the transition from an embedded config server to a dedicated config server, see the [`commitTransitionToDedicatedConfigServer`](https://www.mongodb.com/docs/manual/reference/command/committransitiontodedicatedconfigserver.md#mongodb-dbcommand-dbcmd.commitTransitionToDedicatedConfigServer) command.

**New in version 8.3**

## Compatibility

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

- [MongoDB Enterprise](https://www.mongodb.com/docs/manual/administration/install-enterprise.md#std-label-install-mdb-enterprise): The subscription-based, self-managed version of MongoDB

- [MongoDB Community](https://www.mongodb.com/docs/manual/administration/install-community.md#std-label-install-mdb-community-edition): The source-available, free-to-use, and self-managed version of MongoDB

**Note:**

This command is not supported in [MongoDB Atlas](https://www.mongodb.com/docs/atlas). See [Modify your Atlas Sharded Cluster](https://www.mongodb.com/docs/atlas/cluster-additional-settings/#atlas-managed-config-servers-for-sharded-clusters) to drain the embedded config server.

## Syntax

The command has the following syntax:

```javascript
db.adminCommand( {
     startTransitionToDedicatedConfigServer: 1
} )
```

## Behavior

### Access Requirements

If you have [`authorization`](https://www.mongodb.com/docs/manual/reference/configuration-options.md#mongodb-setting-security.authorization) enabled, you must have the [`clusterManager`](https://www.mongodb.com/docs/manual/reference/built-in-roles.md#mongodb-authrole-clusterManager) role or any role that includes the [`removeShard`](https://www.mongodb.com/docs/manual/reference/privilege-actions.md#mongodb-authaction-removeShard) action.

### No Cluster Back Ups During Shard Drain

You cannot back up the cluster while starting the transition.

### Database Migration Requirements

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`](https://www.mongodb.com/docs/manual/reference/command/moveprimary.md#mongodb-dbcommand-dbcmd.movePrimary) command and the [Remove Shards from a Sharded Cluster](https://www.mongodb.com/docs/manual/tutorial/remove-shards-from-cluster.md#std-label-remove-shards-from-cluster-tutorial) for more information.

### Collection Migration Requirements

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`](https://www.mongodb.com/docs/manual/reference/command/movecollection.md#mongodb-dbcommand-dbcmd.moveCollection) command.

### Chunk Balancing

When you transition to a dedicated config server and the cluster has an uneven chunk distribution, the balancer first removes the chunks from the draining shard and then balances the remaining uneven chunk distribution.

**See also:**

[`balancerCollectionStatus`](https://www.mongodb.com/docs/manual/reference/command/balancercollectionstatus.md#mongodb-dbcommand-dbcmd.balancerCollectionStatus)

### Write Concern

[`mongos`](https://www.mongodb.com/docs/manual/reference/program/mongos.md#std-program-mongos) converts the [write concern](https://www.mongodb.com/docs/manual/reference/write-concern.md#std-label-write-concern) of the `startTransitionToDedicatedConfigServer` command to [`"majority"`.](https://www.mongodb.com/docs/manual/reference/write-concern.md#mongodb-writeconcern-writeconcern.-majority-)

### Change Streams

Draining the embedded config server may cause an open [change stream cursor](https://www.mongodb.com/docs/manual/changestreams.md#std-label-changeStreams) to close, and the closed change stream cursor may not be fully resumable.

### DDL Operations

If you run `startTransitionToDedicatedConfigServer` while your cluster is executing a DDL operation (operation that modifies a collection such as [`reshardCollection`](https://www.mongodb.com/docs/manual/reference/command/reshardcollection.md#mongodb-dbcommand-dbcmd.reshardCollection)), the transition only executes after the concurrent DDL operation finishes.

## Examples

To start the transition, use the [`db.adminCommand()`](https://www.mongodb.com/docs/manual/reference/method/db.admincommand.md#mongodb-method-db.adminCommand) method:

```javascript
db.adminCommand( {
   startTransitionToDedicatedConfigServer: 1
} )
```

## Learn More

- [`getTransitionToDedicatedConfigServerStatus`](https://www.mongodb.com/docs/manual/reference/command/gettransitiontodedicatedconfigserverstatus.md#mongodb-dbcommand-dbcmd.getTransitionToDedicatedConfigServerStatus)

- [`stopTransitionToDedicatedConfigServer`](https://www.mongodb.com/docs/manual/reference/command/stoptransitiontodedicatedconfigserver.md#mongodb-dbcommand-dbcmd.stopTransitionToDedicatedConfigServer)

- [`commitTransitionToDedicatedConfigServer`](https://www.mongodb.com/docs/manual/reference/command/committransitiontodedicatedconfigserver.md#mongodb-dbcommand-dbcmd.commitTransitionToDedicatedConfigServer)
