Add Shards to a Cluster
On this page
You add shards to a sharded cluster after you create the cluster or any time that you need to add capacity to the cluster. If you have not created a sharded cluster, see Deploy a Self-Managed Sharded Cluster.
All shards must be replica sets.
Considerations
Balancing
When you add a shard to a sharded cluster, you affect the balance of chunks among the shards of a cluster for all existing sharded collections. The balancer will begin migrating chunks so that the cluster will achieve balance. See Balancer Internals for more information.
Chunk migrations can have an impact on disk space, as the source shard
automatically archives the migrated documents by default. For details,
see moveChunk
directory.
Capacity Planning
When adding a shard to a cluster, always ensure that the cluster has enough capacity to support the migration required for balancing the cluster without affecting legitimate production traffic.
Add a Shard to a Cluster
You interact with a sharded cluster by connecting to a mongos
instance.
In
mongosh
, connect to themongos
instance. For example, if amongos
is accessible atmongos0.example.net
on port27017
, issue the following command:mongosh --host mongos0.example.net --port 27017 Add a shard replica set to the cluster using the
sh.addShard()
method, as shown in the example below. Issuesh.addShard()
separately for each shard. Specify the name of the replica set and a member of the set.Note
Optional
The following example illustrates adding a shard with
sh.addShard()
:To add a shard replica set named
rs1
with a member running on port27018
onmongodb0.example.net
, issue the following command:sh.addShard( "rs1/mongodb0.example.net:27018" ) Note
It might take some time for chunks to migrate to the new shard.