Мониторинг и прерывание выполняющегося построения индекса
MongoDBОбслуживаниеКоманда
// Index builds in progress and their completion percentage:
db.getSiblingDB("admin").aggregate([
{ $currentOp: { allUsers: true } },
{ $match: { $or: [{ "command.createIndexes": { $exists: true } }, { desc: /^IndexBuildsCoordinator/ }] } },
{ $project: { opid: 1, desc: 1, ns: 1, secs_running: 1, msg: 1, progress: 1, "command.indexes.name": 1 } }
])
// Abort the build (on the primary; in a replica set it stops on all members):
db.musteri.dropIndex("idx_email")Что делает
Выводит выполняющиеся построения индексов с числом просмотренных документов и процентом выполнения (progress.done / progress.total); при необходимости прерывает построение через dropIndex.
Когда использовать
Чтобы оценить, когда завершится createIndex, запущенный на большой коллекции, или остановить построение, создающее нагрузку в пиковое время.
Внимание
Прерывайте построение индекса через dropIndex/dropIndexes, а не killOp; в наборе реплик выполняйте на primary, чтобы прерывание распространилось на всех участников. Некоторые DDL-операции над коллекцией ждут во время построения. В конце построения берётся кратковременная эксклюзивная блокировка; при очень интенсивной записи этот момент может вызвать задержки.