更新时间:2024-05-20 GMT+08:00
如何关闭集合均衡器Balancer
使用DRS服务进行MongoDB数据库分片集群到分片集群的迁移,必须关闭要迁移集合的均衡器Balancer。
关闭Balancer的步骤
- 通过Mongo Shell 登录数据库。
- 在mongos节点命令窗口中,使用如下命令,切换至config数据库。
use config
- 执行如下命令,判断是否可以关闭Balancer。
while( sh.isBalancerRunning() ) { print("waiting..."); sleep(1000); }
- 如果返回结果是waiting,则表示当前Balancer正在执行块(chunk)迁移,此时不能执行关闭Balancer的命令,否则可能引起数据不一致。
图1 查看输出结果
- 如果返回结果是空,则表示当前Balancer没有在进行块(chunk)迁移,此时可以执行下一步的关闭Balancer的命令。
- 如果返回结果是waiting,则表示当前Balancer正在执行块(chunk)迁移,此时不能执行关闭Balancer的命令,否则可能引起数据不一致。
- 关闭Balancer。
- 如果是整个实例的迁移,则执行如下命令,可以关闭整个实例的Balancer。
sh.stopBalancer()
- 如果要关闭待迁移且已经开启了分片的集合的Balancer,则执行如下命令:
sh.disableBalancing("database.collection")
其中database.collection表示要关闭的集合的namespace。
- 如果是整个实例的迁移,则执行如下命令,可以关闭整个实例的Balancer。
父主题: 实时迁移
实时迁移 所有常见问题
- 如何判断数据迁移任务可以停止
- MySQL迁移中Definer强制转化后如何维持原业务用户权限体系
- MySQL存储过程迁移上云后遇到调用权限的问题,如何解决
- 如何确保业务数据库的全部业务已经停止
- 迁移日志提示can not get agency token
- Oracle到MySQL迁移时,索引超长如何处理
- Oracle等异构数据库迁移到MySQL后的数据库排序规则为什么是utf8mb4_bin
- RDS for MySQL不支持MyISAM引擎表,迁移时MyISAM如何处理
- 低版本迁移至MySQL 8.0,应该注意哪些问题
- MongoDB数据库迁移过程中,源数据库出现内存溢出(OOM)是什么原因
- 如何关闭集合均衡器Balancer
- 如何批量导出、导入事件(event)和触发器(trigger)
- 源库参数lower_case_table_names=1时,为什么不允许迁移包含大写字母的库或者表
- 分片集群MongoDB迁移前清除孤儿文档
- MySQL账号迁移后权限显示多了反斜杠“\”
more