使用MongoDB在分片之间迁移数据

时间:2018-01-25 08:34:13

标签: mongodb sharding

我使用以下配置进行了MongoDB分片:

  • 一个前端服务器
  • 一个配置服务器
  • 2个分片:shard01和shard02
  • 分片集合:collection01
  • 2个区域/ 2个范围:
  • zone01 {" num" :0} - >> {" num" :10}
  • zone02 {" num" :11} - >> {" num" :20}

是否可以将数据从zone01迁移到zone02?

我尝试删除范围并重新创建它,但我在两个分片/区域中都有重复的数据。

1 个答案:

答案 0 :(得分:0)

事实上,在数据逐渐从shard01移动到shard02之后,迁移过程正在进行中,与我用于此的命令相反:

1-删除当前范围

sh.removeRangeFromZone("db2017.collection01", { num: 0  }, { num: 10 })
sh.removeRangeFromZone("db2017.collection01", { num: 11 }, { num: 20 })

2-使用不同的区域重新创建新范围:

sh.addTagRange("db2017.collection01", { num: 1 }, { num: 10 }, "zone02")
sh.addTagRange("db2017.collection01", { num: 11 },{ num: 20 }, "zone01")

只需给你的MongoDB一些时间,它就会在分片之间自动迁移你的数据。