DBAtlas · Veritabanı operasyon atlası

Replica set'te rolling index build (üye üye)

MongoDBBakım

Komut

// 1) Bir SECONDARY'yi kapat; replication.replSetName satirini yorum yap, farkli portta standalone baslat:
//    mongod --config /etc/mongod.conf --port 27217 --setParameter disableLogicalSessionCacheRefresh=true
// 2) Standalone uyede index'i olustur:
db.getSiblingDB("shop").musteri.createIndex({ email: 1 }, { name: "idx_email" })
// 3) Normal yapilandirmayla geri baslat; SECONDARY olup lag kapanana kadar bekle:
rs.printSecondaryReplicationInfo()
// 4) Tum secondary'ler bitince primary'yi indir ve 1-3. adimlari eski primary'de uygula:
rs.stepDown(120, 30)

Ne yapar?

Index'i her üyede ayrı ayrı, üyeyi geçici olarak set dışında standalone çalıştırarak oluşturur; primary hiçbir anda build yükü taşımaz.

Ne zaman kullanılır?

Çok büyük bir koleksiyonda varsayılan dağıtık build'in primary'ye ve replication lag'e etkisi kabul edilemez olduğunda.

Dikkat

Her üyenin bakım süresi oplog window'dan kısa olmalı; aksi halde üye geri döndüğünde too stale olur. Unique index'i rolling yöntemle kurarken build boyunca koleksiyona yazmayı durdur; aksi halde bazı üyelerde ihlal eden belge oluşabilir. Standalone üye farklı portta açılmalı ki uygulamalar bağlanmasın.

DBAtlas'ta aç →

İlgili