DBAtlas · Atlas de operações de banco de dados

Monitorar e abortar uma construção de índice em andamento

MongoDBManutenção

Comando

// 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")

O que faz

Lista as construções de índice em execução com o número de documentos varridos e o percentual de progresso (progress.done / progress.total); se necessário, aborta a construção com dropIndex.

Quando usar

Para estimar quando um createIndex iniciado em uma collection grande vai terminar, ou para parar uma construção que gera carga no horário de pico.

Atenção

Aborte uma construção de índice com dropIndex/dropIndexes, não com killOp; em um replica set, rode-o no primário para que o abort se propague a todos os membros. Algumas operações DDL na collection esperam durante a construção. Um lock exclusivo curto é obtido no fim da construção; sob escritas muito pesadas, esse momento pode causar latência.

Abrir no DBAtlas →

Relacionados