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

addShardToZone

在本页

  • 定义
  • 兼容性
  • 语法
  • 行为
  • 安全
  • 示例
addShardToZone

将分片与区域关联区域。MongoDB将此分片与指定的区域关联。该区域覆盖的块将分配给与区域关联的分片。

提示

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

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

您只能从mongos实例运行addShardToZone数据库命令。

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

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

重要

此命令不支持在无服务器实例中。更多信息,请参阅不受支持的命令。

该命令具有以下语法

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

命令包含以下字段

字段
类型
描述
string

要关联的区域。的碎片名称

string

要关联的碎片。的区域名称

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

您可以关联多个分区与多个分片,也可以让一个分片关联到多个分区。

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

MongoDB 会忽略那些没有至少一个与分片键值范围关联的分区。

要关联一个分片键值范围与分区,请使用数据库命令 updateZoneKeyRange,或使用 shell 辅助工具 sh.updateZoneKeyRange()

您可以在未分片的集合或非现有集合上运行数据库命令 updateZoneKeyRange 以及其辅助工具 sh.updateZoneKeyRange()sh.addTagRange()

提示

在将空集合或非现有集合进行分片之前,定义分区和分区范围,分片集合操作将创建定义的分区范围的块,以及覆盖整个分片键值范围所需的所有额外块,并根据分区范围进行初始块分配。这种初始块创建和分配允许更快地设置分区分片。初始分配后,均衡器将管理后续的块分配。

有关示例,请参阅 为空集合或非现有集合预先定义分区和分区范围

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

内置的clusterAdminclusterManager角色具有执行addShardToZone的适当权限。有关更多信息,请参阅基于角色的访问控制的文档页面。

以下示例将shard0000与区域JFK相关联

db.adminCommand( { addShardToZone : "shard0000" , zone : "JFK" } )

分片可以与多个区域相关联。以下示例将LGAshard0000相关联

db.adminCommand( { addShardToZone : "shard0000" , zone : "LGA" } )

shard0000与区域LGA和区域JFK相关联。在一个平衡集群中,MongoDB将覆盖这两个区域的读取和写入路由到shard0000

返回

addShard