sh.removeShardFromZone()
定义
sh.removeShardFromZone(shard, zone)
删除区域和分片之间的分片。
重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。有关数据库命令,请参阅
removeShardFromZone
命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
此方法具有以下参数:
仅在连接到 实例时发出
sh.removeShardFromZone()
mongos
。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
无服务器实例不支持此命令。 有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
sh.removeShardFromZone()
不会删除与区域关联的范围。
要从集群中完全删除区域,您必须在与该区域关联的每个分片上运行sh.removeShardFromZone()
。
如果指定的分片是与该区域关联的最后一个分片,则必须确保没有与该区域关联的剩余范围。 updateZoneKeyRange
在运行sh.removeShardFromZone()
之前,使用 删除与区域关联的任何现有范围。
有关分片集群中区域的更多信息,请参阅区域手册页面。
平衡器
删除区域和分片之间的关联会删除在分片上保持该区域覆盖数据块的约束。在下一个负载均衡器回合中,负载均衡器可能会迁移该区域之前覆盖的数据块。
有关迁移如何在分片集群中工作的更多信息,请参阅分片集群负载均衡器手册页面。
安全性
对于强制执行访问控制的分片集群,您必须通过以下方式之一进行身份验证:
权限包括以下内容的用户:
或者,
权限包括对
enableSharding
集群 资源的 的用户。
clusterAdmin
或clusterManager
内置角色具有发出sh.removeShardFromZone()
的适当权限。 有关更多信息,请参阅基于角色的访问控制手册页。
例子
以下示例删除shard0000
和NYC
区域之间的关联:
sh.removeShardFromZone("shard0000", "NYC")