在本页
addShardToZone
将分片与区域关联区域。MongoDB将此分片与指定的区域关联。该区域覆盖的块将分配给与区域关联的分片。
在mongosh中,此命令也可以通过sh.addShardToZone()辅助方法运行.
mongosh
sh.addShardToZone()
辅助方法方便mongosh用户使用,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便或需要额外返回字段的情况下,请使用数据库命令。
您只能从mongos实例运行addShardToZone数据库命令。
mongos
此命令在以下环境中托管的部署中可用
MongoDB Atlas:云中MongoDB部署的完全托管服务
此命令不支持在无服务器实例中。更多信息,请参阅不受支持的命令。
MongoDB Enterprise:基于订阅的自托管MongoDB版本
MongoDB Community:源代码可用的,免费使用并自托管的MongoDB版本
该命令具有以下语法
db.adminCommand( { addShardToZone: <string>, zone: <string> })
命令包含以下字段
要关联的区域。的碎片名称
要关联的碎片。的区域名称
mongosh 提供了辅助方法 sh.addShardToZone()。
您可以关联多个分区与多个分片,也可以让一个分片关联到多个分区。
有关分片集群中分区更详细的信息,请参阅 分区 手册页面。
MongoDB 会忽略那些没有至少一个与分片键值范围关联的分区。
要关联一个分片键值范围与分区,请使用数据库命令 updateZoneKeyRange,或使用 shell 辅助工具 sh.updateZoneKeyRange()。
updateZoneKeyRange
sh.updateZoneKeyRange()
您可以在未分片的集合或非现有集合上运行数据库命令 updateZoneKeyRange 以及其辅助工具 sh.updateZoneKeyRange() 和 sh.addTagRange()。
sh.addTagRange()
在将空集合或非现有集合进行分片之前,定义分区和分区范围,分片集合操作将创建定义的分区范围的块,以及覆盖整个分片键值范围所需的所有额外块,并根据分区范围进行初始块分配。这种初始块创建和分配允许更快地设置分区分片。初始分配后,均衡器将管理后续的块分配。
有关示例,请参阅 为空集合或非现有集合预先定义分区和分区范围。
对于强制执行访问控制的分片集群,您必须以具有以下权限的用户身份进行身份验证:
update在config数据库中shards集合上的;或者,也可以在集群资源上执行:
update
config
shards
enableSharding。
enableSharding
内置的clusterAdmin或clusterManager角色具有执行addShardToZone的适当权限。有关更多信息,请参阅基于角色的访问控制的文档页面。
clusterAdmin
clusterManager
addShardToZone的适当权限。有关更多信息,请参阅基于角色的访问控制的文档页面。
以下示例将shard0000与区域JFK相关联
shard0000
JFK
db.adminCommand( { addShardToZone : "shard0000" , zone : "JFK" } )
分片可以与多个区域相关联。以下示例将LGA与shard0000相关联
LGA
db.adminCommand( { addShardToZone : "shard0000" , zone : "LGA" } )
shard0000与区域LGA和区域JFK相关联。在一个平衡集群中,MongoDB将覆盖这两个区域的读取和写入路由到shard0000。
返回
addShard
下一页
analyzeShardKey