文档菜单
文档首页
/
MongoDB 手册
/ / /

removeShardFromZone

本页内容

  • 定义
  • 兼容性
  • 语法
  • 命令字段
  • 行为
  • 示例
removeShardFromZone

removeShardFromZone 管理命令移除了分片和区域之间的关联区域.

提示

mongosh 中,此命令也可以通过 sh.removeShardFromZone() 辅助方法运行.

辅助方法对 mongosh 用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便或需要额外的返回字段的情况下,请使用数据库命令。

此命令在以下环境中托管的服务器上可用

  • MongoDB Atlas:云中MongoDB部署的完全托管服务

重要

此命令不支持在无服务器实例上运行。有关更多信息,请参阅不支持命令。

您只能在从mongos实例中运行admin数据库上的removeShardFromZone

该命令有以下语法

db.adminCommand(
{
removeShardFromZone: <string>,
zone: <string>
}
)

该命令包含以下字段

字段
类型
描述
string

要从其中删除区域关联的碎片名称。

string

您想要移除其关联的碎片的区域名称。

mongosh提供了辅助方法sh.removeShardFromZone()

removeShardFromZone 不会删除与区域相关的范围。

要完全从集群中删除区域,必须在每个与区域相关的分片上运行 removeShardFromZone

如果指定的分片是该区域关联的最后一个分片,则必须确保没有与区域关联的剩余分片键范围。在运行 removeShardFromZone. 之前,使用 updateZoneKeyRange 删除与区域关联的所有现有范围。

有关分片集群中区域的信息,请参阅 区域 手册页面。

对于强制执行 访问控制 的分片集群,您必须以以下用户身份进行身份验证:

  • 具有以下权限的用户

    • update 权限的 shards 集合在 config 数据库中,以及

    • find 权限的 tags 集合在 config 数据库中;

    或者,作为具有以下权限的用户

  • enableSharding 权限的 集群 资源。

具有适当权限执行 clusterAdminclusterManager 内置角色的用户可以执行 removeShardFromZone 命令。更多详细信息请参阅基于角色的访问控制手册页面。

以下示例演示了如何删除 shard0000 与区域 NYC 之间的关联

db.adminCommand( { removeShardFromZone : "shard0000" , zone : "NYC" } )

返回

removeShard