Navigation

Sharding Reference

Sharding Methods in the mongo Shell

Name Description
sh._adminCommand() Runs a database command against the admin database, like db.runCommand(), but can confirm that it is issued against a mongos.
sh.getBalancerLockDetails() Reports on the balancer lock.
sh._checkFullName() Tests a namespace to determine if its well formed.
sh._checkMongos() Tests to see if the mongo shell is connected to a mongos instance.
sh._lastMigration() Reports on the last chunk migration.
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.updateZoneKeyRange() Associates a range of shard keys to a zone. Supports configuring zones in sharded clusters.
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.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.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.

Sharding Database Commands

The following database commands support sharded clusters.

Name Description
flushRouterConfig Forces an update to the cluster metadata cached by a mongos.
addShard Adds a shard to a sharded cluster.
balancerStart Starts a balancer thread.
balancerStatus Returns information on the balancer status.
balancerStop Stops the balancer thread.
cleanupOrphaned Removes orphaned data with shard key values outside of the ranges of the chunks owned by a shard.
checkShardingIndex Internal command that validates index on shard key.
enableSharding Enables sharding on a specific database.
listShards Returns a list of configured shards.
removeShard Starts the process of removing a shard from a sharded cluster.
getShardMap Internal command that reports on the state of a sharded cluster.
getShardVersion Internal command that returns the config server version.
mergeChunks Provides the ability to combine chunks on a single shard.
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.
unsetSharding Internal command that affects connections between instances in a MongoDB deployment.
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.
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.
isdbgrid Verifies that a process is a mongos.
addShardToZone Associates a shard with a zone. Supports configuring zones in sharded clusters.
removeShardFromZone Removes the association between a shard and a zone. Supports configuring zones in sharded clusters.
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.