对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

removeShardFromZone(数据库命令)

removeShardFromZone

removeShardFromZone 管理命令删除分片和区域之间的关联。

提示

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

助手方法对于 mongosh 用户来说很方便,但它们可能返回与数据库命令不同级别的信息。如果不追求方便或需要额外的返回字段,请使用数据库命令。

此命令可用于以下环境中托管的部署:

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

您只能从 mongos实例对admin数据库运行removeShardFromZone。

该命令具有以下语法:

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

该命令接受以下字段:

字段
类型
说明

字符串

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

字符串

与要删除的分片关联的区域的名称。

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

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

要从集群中彻底删除区域,必须在与该区域关联的每个分片上运行removeShardFromZone。

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

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

对于强制执行访问控制的分片集群,您必须通过以下方式之一进行身份验证:

  • 权限包括以下内容的用户:

    • 针对update 在config数据库的shardscollection,以及

    • 针对find config数据库中的tagscollection的 ;

    或者,或者,

  • 权限包括对enableSharding 集群 资源的 的用户。

clusterAdmin 或 clusterManager内置角色具有发出removeShardFromZone 的适当权限。有关更多信息,请参阅基于角色的访问控制手册页。

以下示例删除shard0000和区域NYC之间的关联:

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