DBAtlas · Атлас эксплуатации баз данных

Состояние балансировщика, активное окно и балансировка по коллекциям

MongoDBШардинг

Команда

// Is the balancer enabled, is it running a round right now:
sh.getBalancerState()
db.adminCommand({ balancerStatus: 1 })
// Run the balancer only between 01:00 and 05:00 (on mongos):
db.getSiblingDB("config").settings.updateOne({ _id: "balancer" }, { $set: { activeWindow: { start: "01:00", stop: "05:00" } } }, { upsert: true })
// Remove the window:
db.getSiblingDB("config").settings.updateOne({ _id: "balancer" }, { $unset: { activeWindow: true } })
// Disable / enable balancing for a single collection:
sh.disableBalancing("shop.musteri")
sh.enableBalancing("shop.musteri")
// Whether the collection is balanced (4.4+):
db.adminCommand({ balancerCollectionStatus: "shop.musteri" })

Что делает

Показывает, включён ли балансировщик и выполняет ли раунд, ограничивает перенос чанков временным окном и отключает или включает балансировку для отдельной коллекции.

Когда использовать

Когда перенос чанков мешает дневной производительности, во время окна резервного копирования или при изоляции проблемы миграции на одной коллекции.

Внимание

Слишком узкое окно не успевает за ростом данных, и шарды разбалансируются; регулярно проверяйте баланс через balancerCollectionStatus. Миграция, начатая до закрытия окна, выполняется до конца. Если балансировка коллекции оставлена выключенной, эта коллекция продолжает расти на одном шарде.

Открыть в DBAtlas →

Связанные материалы