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

# Transition Atlas Core Clusters to Dedicated Config Servers

**Important:**

The feature described on this page is not currently supported on Atlas Infinite clusters during public preview. For the features supported in public preview, see [Public Preview Availability.](https://www.mongodb.com/docs/atlas/infinite/atlas-infinite-landing/#public-preview-availability)

**Note:**

If you are running a self-managed deployment, see [Transition from Embedded to Dedicated Config Server](https://www.mongodb.com/docs/manual/tutorial/embedded-to-dedicated.md#std-label-embedded-to-dedicated-tutorial) to learn how to transition your config server type using the [`transitionToDedicatedConfigServer`](https://www.mongodb.com/docs/manual/reference/command/transitionToDedicatedConfigServer.md#mongodb-dbcommand-dbcmd.transitionToDedicatedConfigServer) database command.

When a sharded cluster uses an embedded config server, called a [config shard](https://www.mongodb.com/docs/manual/core/config-shard.md#std-label-config-shard-concept), Atlas or a user may transition the cluster to use a [dedicated config server](https://www.mongodb.com/docs/manual/reference/glossary.md#std-term-dedicated-config-server). With an embedded config server, the config shard stores both cluster metadata and user data. With a dedicated config server, the config node stores only metadata. Atlas transitions clusters from embedded to dedicated config servers automatically under certain conditions. You can also initiate the transition manually.

## Before You Start

The transition from an embedded to a dedicated config server is an online operation that requires moving all user data off the config shard. For clusters with large amounts of data on the config shard, the process can take hours to days. Before initiating the transition, confirm the following:

- **Your destination shards have headroom.** During the migration, shards that receive data from the config shard see elevated CPU, memory, and I/O. While the transition runs, Atlas cannot scale the cluster tier or modify storage because only one long-running plan can run at a time. If the receiving shards are near capacity, scale them up before starting the transition.

- **Your cluster uses only supported features.** [MongoDB Search](https://www.mongodb.com/docs/search.md#std-label-atlas-search), [MongoDB Vector Search](https://www.mongodb.com/docs/vector-search.md#std-label-fts-vector-search), unsharded time-series collections, and unsharded queryable encryption collections on the config shard block automatic transitions. For a full list of blocking features, see [Limitations and Exceptions.](https://www.mongodb.com/docs/atlas/transition-to-dedicated-config-servers.md#std-label-config-server-transition-limitations)

- **Drop** `system.profile` **before transitioning on earlier
  MongoDB versions.** [The system.profile collection](https://www.mongodb.com/docs/upcoming/tutorial/manage-the-database-profiler/#the-system.profile-collection) on the config shard can block the transition. If profiling is enabled, drop `system.profile` before initiating the transition, or upgrade to MongoDB 8.2.7 or later.

- **Write-blocking must not be active on the config server.** If [write-blocking](https://www.mongodb.com/docs/atlas/intelligent-workload-management.md#std-label-iwm-always-on-protections) is active on the config server, Atlas does not allow the transition to a dedicated config server. Atlas displays a banner on the cluster page indicating that the transition is blocked while write-blocking is active. To proceed, [increase cluster storage](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster) or [enable storage auto-scaling](https://www.mongodb.com/docs/atlas/cluster-autoscaling.md#std-label-cluster-autoscaling) to clear the write-blocking condition, then retry the transition.

## Start the Transition

Atlas automatically manages transitions between embedded and dedicated config servers when [Atlas-Managed Config Servers](https://www.mongodb.com/docs/atlas/cluster-additional-settings.md#std-label-config-server-management) is enabled. The following diagram shows when Atlas triggers each transition:

!["Decision flow for when Atlas transitions a cluster from an embedded to a dedicated config server."](/images/when-embedded-to-dedicated-transition.svg)

### Atlas-Managed Transitions

Atlas enables [Atlas-Managed Config Servers](https://www.mongodb.com/docs/atlas/cluster-additional-settings.md#std-label-config-server-management) by default for all 8.0 clusters. When enabled, Atlas automatically transitions your cluster between [config server types](https://www.mongodb.com/docs/atlas/cluster-additional-settings.md#std-label-config-server-types) based on shard count:

- When the shard count increases beyond 10, Atlas transitions from an embedded config server to a dedicated config server.

- When the shard count decreases to 10 or fewer, Atlas transitions from a dedicated config server to an embedded config server.

**Note:**

When you upgrade a sharded cluster from MongoDB 7.0 to 8.0, Atlas turns on [Atlas-Managed Config Servers](https://www.mongodb.com/docs/atlas/cluster-additional-settings.md#std-label-config-server-management) but doesn't change the cluster's existing config server type. Starting with MongoDB 8.0, Atlas-managed config servers are on by default, and these criteria apply to shard-count changes only. To move a cluster to an embedded config server, contact [MongoDB Support](https://support.mongodb.com/welcome).

### Manually Transition to Dedicated Config Server

To manually trigger the transition to a dedicated config server, complete the following steps:

1. In Atlas, go to the Clusters page for your project.

   If it's not already displayed, select the organization that contains your desired project from the  Organizations menu in the navigation bar.

   If it's not already displayed, select your desired project from the Projects menu in the navigation bar.

   In the sidebar, click Clusters under the Database heading.

   The [Clusters](https://cloud.mongodb.com/go?l=https%3A%2F%2Fcloud.mongodb.com%2Fv2%2F%3Cproject%3E%23%2Fclusters) page displays.

2. Open the Cluster Builder.

   Click the  next to the name of your cluster and select Edit Configuration. Expand the Additional Settings panel to configure additional settings for your cluster.

3. Turn off the Atlas-Managed Configuration
   Servers toggle.

   Under Additional Settings > More
   Configuration Options, turn off the Atlas-Managed Configuration Servers toggle.

4. Apply the changes.

   Click Review Changes and then Apply Changes. Atlas immediately begins the conversion to a dedicated config server.

## During the Transition

MongoDB cannot move config metadata, so Atlas must first drain all user data off the config shard, `config-0`, before it can transition to a dedicated config server. As part of the transition, Atlas adds a replacement shard to maintain your target shard count because `config-0` no longer serves user data.

### Example Transition Process

The following table shows the steps Atlas performs when you add an 11th shard to a 10-shard cluster with [Atlas-Managed Config Servers](https://www.mongodb.com/docs/atlas/cluster-additional-settings.md#std-label-config-server-management) enabled, which initiates the transition.

| Step | Action | Effective Shard Count |
| --- | --- | --- |
| Start | 10-shard cluster with embedded config server (`config-0` and `shard-0` through `shard-8`) | 10 |
| 1 | Atlas adds `shard-9`, bringing the cluster to its target shard count. The cluster now has 11 user-facing shards: `shard-0` through `shard-9` and `config-0`, which still stores user data. | 11 |
| 2 | Atlas runs [`transitionToDedicatedConfigServer`](https://www.mongodb.com/docs/manual/reference/command/transitionToDedicatedConfigServer.md#mongodb-dbcommand-dbcmd.transitionToDedicatedConfigServer), which internally runs [`removeShard`](https://www.mongodb.com/docs/manual/reference/command/removeShard.md#mongodb-dbcommand-dbcmd.removeShard) on `config-0`. Sharded collections drain to other shards via the [balancer](https://www.mongodb.com/docs/manual/core/sharding-balancer-administration.md#std-label-sharding-balancing) using chunk migrations. Unsharded collections move via [`moveCollection`.](https://www.mongodb.com/docs/manual/reference/command/moveCollection.md#mongodb-dbcommand-dbcmd.moveCollection) | 11 (drain in progress) |
| 3 | Atlas waits for [`orphanCleanupDelaySecs`](https://www.mongodb.com/docs/manual/reference/parameters.md#mongodb-parameter-param.orphanCleanupDelaySecs) to elapse before confirming `config-0` is clear. On clusters running MongoDB versions earlier than 8.2.7, Atlas waits for all range deletions to complete instead, which can take significantly longer. | 11 (cleanup in progress) |
| 4 | `config-0` converts to a dedicated config server. Atlas adds `shard-10` to restore the target shard count. The 11 user-facing shards are now `shard-0` through `shard-10`. | 11 |
| 5 | Atlas scales down `config-0` to the default for dedicated config servers, M30. | 11 |

### Duration

The transition duration depends on the amount of user data on the config shard. Draining the config shard involves chunk migrations for sharded collections and `moveCollection` operations for unsharded collections, both of which move data across the network. The duration varies based on dataset size:

- **Small datasets (a few GB):** minutes to a small number of hours

- **Large datasets (hundreds of GB to multiple TB):** hours to days

**Note:**

If your cluster has a large volume of data on the config shard, perform the transition during a low-traffic period.

### Operational Impact

Transitioning from an embedded to a dedicated config server has the following operational impacts on your cluster:

- **No downtime.** The transition is online. Your application continues reading and writing throughout.

- **Elevated resource usage on receiving shards.** Shards absorbing data from the config shard may see higher CPU, memory, and I/O during migration. Application latency on affected shards may increase modestly.

- **Atlas plan lock.** While the transition runs, Atlas cannot execute other long-running plans on the cluster, such as scaling the cluster tier, changing storage, or adding or removing other shards. Only one long-running plan can run at a time.

**Warning: Do not cancel the transition after it has started.**

Do not cancel via the Atlas UI or by reducing the shard count while the transition is in progress. If cancellation is necessary, contact [MongoDB Support](https://support.mongodb.com/welcome).

### Monitor Progress

The following diagram shows the methods available to monitor the transition progress:

!["Monitoring the progress of an embedded to dedicated config server transition."](/images/embedded-to-dedicated-monitoring.png)

While the transition is in progress, Atlas displays the following banner on the cluster page:

`We are deploying your changes (current action:
transitioning config server type).`

## Limitations and Exceptions

Atlas does not automatically transition config servers for clusters that use the following features. If your cluster uses one of these features and needs a config server type change, contact [MongoDB Support](https://support.mongodb.com/welcome):

| Feature | Auto-transition | Resolution |
| --- | --- | --- |
| **MongoDB Search / Vector Search** Atlas pins the config server type to what it was when Search was enabled. The restriction applies on both sharded and unsharded collections. | Blocked (pinned) | Contact [MongoDB Support](https://support.mongodb.com/welcome) or live migration |
| **Unsharded queryable encryption** `moveCollection` does not support queryable encryption collections. | Blocked | Contact [MongoDB Support](https://support.mongodb.com/welcome) |
| **Global Clusters** Do not support embedded config servers. | N/A | Always dedicated |
| **Replica Set to sharded cluster conversion** When you convert a replica set to a sharded cluster in Atlas, the resulting cluster always uses a dedicated config server regardless of the Atlas-Managed Configuration Servers setting. | N/A | Contact [MongoDB Support](https://support.mongodb.com/welcome) |
| **None of the above** | Allowed | Proceeds online |

## Learn More

- [Atlas-Managed Config Servers for Sharded Clusters](https://www.mongodb.com/docs/atlas/cluster-additional-settings.md#std-label-config-server-management)

- [Config Shards](https://www.mongodb.com/docs/manual/core/sharded-cluster-config-servers.md#std-label-sharded-cluster-config-server-config-shards)

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

- [Convert Replica Set to an Embedded Config Shard](https://www.mongodb.com/docs/manual/tutorial/convert-replica-set-to-embedded-config-server.md#std-label-convert-replica-set-to-embedded-config-server)
