文档首页 > > 常见问题> 数据迁移> 如何关闭集合均衡器Balancer

如何关闭集合均衡器Balancer

分享
更新时间: 2020/07/01 GMT+08:00

使用DRS服务进行MongoDB数据库分片集群到分片集群的迁移,必须关闭要迁移集合的均衡器Balancer。

迁移结束后请开启Balancer,因为在迁移期间关闭了Balancer,源数据库的不同shard可能产生了不等量的块(chunk),在Balancer开启之后集群shard之间的块(chunk)移动会暂时影响源数据库的性能。

关闭Balancer的步骤

  1. 通过Mongo Shell 登录数据库。
  2. 在mongos节点命令窗口中,使用如下命令,切换至config数据库。

    use config

  3. 执行如下命令,判断是否可以关闭Balancer。

    while( sh.isBalancerRunning() ) {      
              print("waiting...");           
              sleep(1000);
    }
    • 如果返回结果是waiting,则表示当前Balancer正在执行块(chunk)迁移,此时不能执行关闭Balancer的命令,否则可能引起数据不一致。
      图1 查看输出结果
    • 如果返回结果是空,则表示当前Balancer没有在进行块(chunk)迁移,此时可以执行下一步的关闭Balancer的命令。

  4. 关闭Balancer。

    • 如果是整个实例的迁移,则执行如下命令,可以关闭整个实例的Balancer。
      sh.stopBalancer()
    • 如果要关闭待迁移且已经开启了分片的集合的Balancer,则执行如下命令:
      sh.disableBalancing("database.collection")

      其中database.collection表示要关闭的集合的namespace。

分享:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问