Navigation

Sharding Reference

Sharding Methods in the mongo Shell

Name Description
sh.getBalancerLockDetails() Reports on the balancer lock.
sh.addShard() Adds a shard to a sharded cluster.
sh.addShardTag() In MongoDB 3.4, this method aliases to sh.addShardToZone().
sh.addShardToZone() Associates a shard to a zone. Supports configuring zones in sharded clusters.
sh.addTagRange() In MongoDB 3.4, this method aliases to sh.updateZoneKeyRange().
sh.disableBalancing() Disable balancing on a single collection in a sharded database. Does not affect balancing of other collections in a sharded cluster.
sh.enableBalancing() Activates the sharded collection balancer process if previously disabled using sh.disableBalancing().
sh.enableSharding() Enables sharding on a specific database.
sh.getBalancerHost() Deprecated since MongoDB 3.4
sh.getBalancerState() Returns a boolean to report if the balancer is currently enabled.
sh.removeTagRange() In MongoDB 3.4, this method aliases to sh.removeRangeFromZone().
sh.removeRangeFromZone() Removes an association between a range of shard keys and a zone. Supports configuring zones in sharded clusters.
sh.help() Returns help text for the sh methods.
sh.isBalancerRunning() Returns a boolean to report if the balancer process is currently migrating chunks.
sh.moveChunk() Migrates a chunk in a sharded cluster.
sh.removeShardTag() In MongoDB 3.4, this method aliases to sh.removeShardFromZone().
sh.removeShardFromZone() Removes the association between a shard and a zone. Use to manage zone sharding.
sh.setBalancerState() Enables or disables the balancer which migrates chunks between shards.
sh.shardCollection() Enables sharding for a collection.
sh.splitAt() Divides an existing chunk into two chunks using a specific value of the shard key as the dividing point.
sh.splitFind() Divides an existing chunk that contains a document matching a query into two approximately equal chunks.
sh.startBalancer() Enables the balancer and waits for balancing to start.
sh.status() Reports on the status of a sharded cluster, as db.printShardingStatus().
sh.stopBalancer() Disables the balancer and waits for any in progress balancing rounds to complete.
sh.waitForBalancer() Internal. Waits for the balancer state to change.
sh.waitForBalancerOff() Internal. Waits until the balancer stops running.
sh.waitForDLock() Internal. Waits for a specified distributed sharded cluster lock.
sh.waitForPingChange() Internal. Waits for a change in ping state from one of the mongos in the sharded cluster.
sh.updateZoneKeyRange() Associates a range of shard keys to a zone. Supports configuring zones in sharded clusters.

Sharding Database Commands

The following database commands support sharded clusters.

Name Description
addShard Adds a shard to a sharded cluster.
addShardToZone Associates a shard with a zone. Supports configuring zones in sharded clusters.
balancerStart Starts a balancer thread.
balancerStatus Returns information on the balancer status.
balancerStop Stops the balancer thread.
checkShardingIndex Internal command that validates index on shard key.
cleanupOrphaned Removes orphaned data with shard key values outside of the ranges of the chunks owned by a shard.
enableSharding Enables sharding on a specific database.
flushRouterConfig Forces an update to the cluster metadata cached by a mongos.
getShardMap Internal command that reports on the state of a sharded cluster.
getShardVersion Internal command that returns the config server version.
isdbgrid Verifies that a process is a mongos.
listShards Returns a list of configured shards.
medianKey Deprecated internal command. See splitVector.
moveChunk Internal command that migrates chunks between shards.
movePrimary Reassigns the primary shard when removing a shard from a sharded cluster.
mergeChunks Provides the ability to combine chunks on a single shard.
removeShard Starts the process of removing a shard from a sharded cluster.
removeShardFromZone Removes the association between a shard and a zone. Supports configuring zones in sharded clusters.
setShardVersion Internal command to sets the config server version.
shardCollection Enables the sharding functionality for a collection, allowing the collection to be sharded.
shardingState Reports whether the mongod is a member of a sharded cluster.
split Creates a new chunk.
splitChunk Internal command to split chunk. Instead use the methods sh.splitFind() and sh.splitAt().
splitVector Internal command that determines split points.
unsetSharding Internal command that affects connections between instances in a MongoDB deployment.
updateZoneKeyRange Adds or removes the association between a range of sharded data and a zone. Supports configuring zones in sharded clusters.

Reference Documentation

Operational Restrictions
Requirement for deploying a sharded cluster
Troubleshoot Sharded Clusters
Common strategies for troubleshooting sharded cluster deployments.
Config Database
Complete documentation of the content of the local database that MongoDB uses to store sharded cluster metadata.