
# 如何关闭集合均衡器Balancer
使用DRS服务进行MongoDB数据库分片集群到分片集群的迁移，必须关闭要迁移集合的均衡器Balancer。
![](https://support.huaweicloud.com/drs_faq/public_sys-resources/note_3.0-zh-cn.png)
- DDS集群关闭集合均衡器Balancer需调用API接口，参考[设置集群均衡开关](https://support.huaweicloud.com/api-dds/dds_api_0111.html)，具体方法需要提交[工单申请](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)发起咨询。自建MongoDB设置可参考[如下步骤]。
- 迁移结束后请开启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查看输出结果   
     ![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000001189463824.png "点击放大") 
   
   - 如果返回结果是空，则表示当前Balancer没有在进行块（chunk）迁移，此时可以执行下一步的关闭Balancer的命令。
   
   
   
   
4. 关闭Balancer。 
   - 如果是整个实例的迁移，则执行如下命令，可以关闭整个实例的Balancer。
     ```
     sh.stopBalancer()
     ```
     
   
   - 如果要关闭待迁移且已经开启了分片的集合的Balancer，则执行如下命令：
     ```
     sh.disableBalancing("database.collection")
     ```
     其中database.collection表示要关闭的集合的namespace。
     
   
   
   
   
 
