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

更新现有 shard 区域

本页内容

  • 关于此任务
  • 开始之前
  • 向名为 NYC 的区域添加一个分片
  • 指定 NYC 区域的邮编值范围
  • 步骤
  • 停止平衡器
  • 从区域中移除当前 NYC 范围
  • 更新 NYC 区域的区域键范围
  • 重新启动平衡器
  • 了解更多信息

在您为分片区域指定一组值之后,如果您的应用程序的需求发生变化,您可以更新分片区域范围。

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

  1. 停止均衡器.

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

  3. 更新区域的范围。

  4. 重新启动均衡器。

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

  • 修改区域后,均衡器必须根据新的值范围将块迁移到适当的区域。在均衡完成之前,某些块可能根据配置的分片集群区域位于错误的分片上。

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

本示例使用名为users 的分片集合,位于 records 数据库中,通过 zipcode 字段进行分片。

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

以下过程将修改纽约市区域的邮编值范围,使其为11201至11240。

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()

返回

管理