Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

更新现有分片区域

在此页面上

  • 关于此任务
  • 开始之前
  • 将分片添加到名为 NYC 的区域
  • 指定 NYC 区域的邮政编码值范围
  • 步骤
  • 停止负载均衡器
  • 从区域中删除当前的 NYC 范围
  • 更新 NYC 区域的区域密钥范围
  • 重启负载均衡器
  • 了解详情

为分片区域指定值范围后,如果应用程序的要求发生变化,则可以更新分片区域范围。

要更新现有分片区域,请执行以下步骤:

  1. 停止负载均衡器。

  2. 从区域中删除旧范围。

  3. 更新区域范围。

  4. 重新启动负载均衡器。

  • 区域范围包括下边界,但不包括上边界。

  • 修改区域后,负载均衡器必须根据新的值范围将数据段迁移到相应的区域。在均衡完成之前,考虑到为分片集群配置的区域,某些数据段可能驻留在错误的分片上。

要完成本教程,您必须部署具有分片集合的分片集群并创建要修改的区域。

此示例使用records数据库中名为 users的分片集合,由zipcode字段进行分片。

1
sh.addShardToZone(<shard name>, "NYC")
2
sh.updateZoneKeyRange("records.users", { zipcode: "10001" }, { zipcode: "10281" }, "NYC" )

以下过程将NYC区域的zipcode值范围修改为1120111240

1
sh.stopBalancer()
2
sh.removeRangeFromZone("records.user", { zipcode: "10001" }, { zipcode: "10281" } )
3
sh.updateZoneKeyRange("records.users", { zipcode: "11201" }, { zipcode: "11240" }, "NYC" )
4
sh.startBalancer()
← 管理分片区域