On this page
addShardToZone
在本页面
Definition
addShardToZone
- 3.4 版的新功能:将分片与zone关联。 MongoDB 将此分片与给定区域关联。区域覆盖的块将分配给与该区域关联的碎片。
Syntax
您只能从mongos实例在admin
数据库上运行addShardToZone。
addShardToZone命令具有以下语法:
db.adminCommand(
{
addShardToZone: <string>,
zone: <string>
}
)
Fields
该命令包含以下字段:
Field | Type | Description |
---|---|---|
addShardtoZone | string | 与zone关联的分片的名称。 |
zone | string | 要与shard关联的区域的名称。 |
mongo shell 提供了辅助方法sh.addShardToZone()
Behavior
您可以将一个区域与多个分片关联,而一个分片可以与多个区域关联。
有关分片群集中区域的更多信息,请参见zone手册页。
Ranges
MongoDB 有效地忽略没有至少一个与之关联的分片键值范围的区域。
要将范围的分片键值范围与区域相关联,请使用updateZoneKeyRange数据库命令或sh.updateZoneKeyRange() Shell 帮助程序。
Security
对于实施access control的分片群集,您必须以具有以下任一特权的用户身份进行身份验证:
config
数据库中shards
集合上的update;或者,cluster资源上的enableSharding(从版本 3.6.16 开始可用)。
内置clusterAdmin或clusterManager角色具有发布addShardToZone的适当权限。有关更多信息,请参见基于角色的访问控制的文档页面。
Example
以下示例将shard0000
与区域JFK
关联:
db.adminCommand( { addShardToZone : "shard0000" , zone : "JFK" } )
一个分片可以与多个区域关联。以下示例将LGA
关联到shard0000
:
db.adminCommand( { addShardToZone : "shard0000" , zone : "LGA" } )
shard0000
与LGA
区域和JFK
区域关联。在平衡的集群中,MongoDB 将由任一区域覆盖的读取和写入路由到shard0000
。