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