在大多数情况下,应让自动平衡器在分片之间 迁移块。但是,在某些情况下,您可能需要手动迁移块:
要手动迁移块,请使用moveChunk
命令。有关自动平衡器如何在分片之间移动块的更多信息,请参见《集群平衡器》和《
块迁移》。
例
迁移单个块
下面的示例假定该字段username
是
片键名为收集users
在myapp
数据库中,该值smith
在中存在块
迁移。在mongo
外壳程序中使用以下命令迁移块
。
此命令将包含碎片键值“史密斯”的大块
碎片命名mongodb-shard3.example.net
。该命令将阻塞,直到迁移完成。
小费
要返回分片列表,请使用listShards
命令。
例
均匀迁移块
要均匀地迁移myapp.users
集合中的块,请将每个前缀块放在另一个分片的下一个分片上,然后在mongo shell中运行以下命令:
有关预分割的介绍,请参见在分片群集中创建块。
该moveChunk
命令具有:_secondaryThrottle
参数和writeConcern
确定平衡器何时继续进行迁移块中下一个文档的参数。有关moveChunk
详细信息,请参见
命令。