定义
removeShardFromZoneremoveShardFromZone管理命令删除分片与 区域之间的关联。提示
在
mongosh中,该命令也可通过sh.removeShardFromZone()辅助方法运行。辅助方法对
mongosh用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
您只能从removeShardFromZone 实例的 数据库上运行admin mongos。
该命令具有以下语法:
db.adminCommand( { removeShardFromZone: <string>, zone: <string> } )
命令字段
该命令接受以下字段:
字段 | 类型 | 说明 |
|---|---|---|
字符串 | ||
字符串 |
行为
removeShardFromZone 不会删除与区域关联的范围。
要从集群中完全删除区域,您必须在与该区域关联的每个分片上运行removeShardFromZone 。
如果指定的分片是与该区域关联的最后一个分片,则必须确保没有与该区域关联的剩余分片键范围。 updateZoneKeyRange在运行removeShardFromZone 之前,使用 删除与区域关联的任何现有范围。
有关分片集群中区域的更多信息,请参阅区域手册页面。
安全性
对于强制执行访问控制的分片集群,您必须通过以下方式之一进行身份验证:
权限包括以下内容的用户:
或者,或者,
权限包括对
enableSharding集群 资源的 的用户。
clusterAdmin或clusterManager内置角色具有发出removeShardFromZone的适当权限。 有关更多信息,请参阅基于角色的访问控制手册页。
例子
以下示例删除shard0000和区域NYC之间的关联:
db.adminCommand( { removeShardFromZone : "shard0000" , zone : "NYC" } )