DBAtlas · Veritabanı operasyon atlası

Devam eden index build ilerlemesini izle ve iptal et

MongoDBBakım

Komut

// Devam eden index build'ler ve ilerleme yuzdesi:
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 } }
])
// Build'i iptal et (primary'de; replica set'te tum uyelerde durur):
db.musteri.dropIndex("idx_email")

Ne yapar?

Çalışan index build'leri, taradığı belge sayısı ve yüzde ilerlemesiyle (progress.done / progress.total) listeler; gerekirse build'i dropIndex ile iptal eder.

Ne zaman kullanılır?

Büyük koleksiyonda başlatılan bir createIndex'in ne zaman biteceğini kestirmek veya yoğun saatte yük oluşturan build'i durdurmak için.

Dikkat

Index build'i killOp ile değil dropIndex/dropIndexes ile iptal et; replica set'te iptalin tüm üyelere yayılması için komutu primary'de çalıştır. Build sırasında koleksiyon üzerindeki bazı DDL işlemleri bekler. Build'in sonunda kısa süreli exclusive lock alınır; çok yoğun yazmada bu an gecikme yaratabilir.

DBAtlas'ta aç →

İlgili