removeShardFromZone
定义
removeShardFromZone
removeShardFromZone
管理命令删除分片与区域之间的分片。提示
在
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" } )