Navigation

removeShardFromZone

On this page

Definition

removeShardFromZone

New in version 3.4.

The removeShardFromZone administrative command removes the association between a shard and a zone.

To run removeShardFromZone, use the db.runCommand( { <command> } ) method.

You must run removeShardFromZone on the admin database.

The removeShardFromZone command has the following syntax:

{
  removeShardFromZone: <string>,
  zone: <string>
}

The command takes the following fields:

Field Type Description
removeShardFromZone string The name of the shard from which to remove association with the zone.
zone string The name of the zone from which to remove association with the shard.

Only issue removeShardFromZone when connected to a mongos instance.

The mongo shell provides the helper method sh.removeShardFromZone()

Behavior

removeShardFromZone does not remove ranges associated with the zone.

To completely remove a zone from the cluster, you must run removeShardFromZone on each shard associated with the zone.

If the shard specified is the last shard associated with the zone, you must ensure there are no remaining shard key ranges associated with the zone. Use updateZoneKeyRange to remove any existing ranges associated with the zone before running removeShardFromZone.

See the zone manual page for more information on zones in sharded clusters.

Security

For sharded clusters running with authentication, you must authenticate as a user whose privileges include:

  • update on the config.shards collection or the config database
  • find on the config.tags collection or the config database

The clusterAdmin or clusterManager built-in roles have the appropriate permissions for issuing removeShardFromZone. See the Role-Based Access Control manual page for more information.

Example

The following example removes the association between shard0000 and zone NYC:

admin = db.getSiblingDB("admin")
admin.runCommand( { removeShardFromZone : "shard0000" , zone : "NYC" } )