mongodb

【MongoDB】MongoDB分片集群均衡器Balancer的

2024-04-25  本文已影响0人  Bogon

在 MongoDB 分片集群实例增删Shard节点、数据迁移等场景下,您可能需要修改均衡器Balancer的活动窗口期或开启关闭均衡器Balancer。
均衡器Balancer用于均衡分片集群实例中各Shard节点中的数据,不同版本的MongoDB实例工作原理存在区别。

在正常情况下,MongoDB分片集群的balancer是始终运行的。
Balancer负责在分片集群中平衡数据的分布,确保数据均匀地分布在各个分片上。
因此,通常情况下,balancer会持续运行以保持数据的平衡状态。

什么情况下会设置balancer的时间窗口?
设置balancer的时间窗口可以用于指定在特定时间段内执行数据平衡操作。这种设置通常在以下情况下使用:

  1. 维护窗口:在维护期间(例如数据备份、索引重建等)可以设置时间窗口,避免在此期间进行数据平衡操作,以免影响维护任务的性能。

  2. 业务高峰期:在业务高峰期间,可以设置时间窗口,避免在此期间进行数据平衡操作,以确保系统性能不受影响。

  3. 网络高负载时段:在网络高负载时段,可以设置时间窗口,以避免在此时段执行数据平衡操作,以减轻网络负载压力。

通过设置时间窗口,可以更灵活地控制Balancer的运行时间,以适应不同的业务需求和运维场景。

$ mongo  --host xx.xx.xx  --port XXX -u "XXX" -p "XXX"  --authenticationDatabase admin


> use config
> sh.isBalancerRunning()
> sh.setBalancerState(true)
> use config

> db.settings.update(
   { _id: "balancer" },
   { $set: { activeWindow : { start : "<start-time>", stop : "<stop-time>" } } },
   { upsert: true }
)

db.settings.update(
   { _id: "balancer" },
   { $set: { activeWindow : { start : "01:00", stop : "03:00" } } },
   { upsert: true }
)
image.png

如果您需要Balancer始终处于运行状态,您可以执行如下命令去除活动窗口的设置:


> use config
db.settings.update({ _id : "balancer" }, { $unset : { activeWindow : true } })                

参考

管理MongoDB均衡器Balancer
https://help.aliyun.com/zh/mongodb/use-cases/manage-the-apsaradb-for-mongodb-balancer

上一篇下一篇

猜你喜欢

热点阅读