MongoDB Replica Set Seçimleri ve PRIMARY Kaybı: Kararlılık Teşhisi
Sık primary seçimlerinde üyelerin sağlık, oy ve oplog durumunu değerlendirir; ağ/disk kaynaklı ayrışmaları ve split-brain riskini güvenle yönetir.
Operasyonel Güvenlik ve Risk Uyarısı
Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.
1. Belirti / Symptom
Kısa aralıklarla PRIMARY değişir, uygulama `NotWritablePrimary`, server selection timeout veya kısa yazma kesintileri yaşar. M58 üye durumları/eski primary kaybını işaret eder.
2. Etki / Impact
Yazma erişimi kısa süreli veya quorum yoksa kalıcı olarak kesilir. `w:1` ile yazılmış ama çoğunluğa ulaşmamış kayıtların rollback riski vardır.
3. Teşhis / Diagnosis
const st = rs.status();
st.members.map(m => ({ name: m.name, state: m.stateStr, health: m.health,
optimeDate: m.optimeDate, lastHeartbeatMessage: m.lastHeartbeatMessage }));
rs.conf().members.map(m => ({ host: m.host, votes: m.votes, priority: m.priority,
hidden: m.hidden, arbiterOnly: m.arbiterOnly }));4. Müdahale / Response
5. Doğrulama / Verification
Bir PRIMARY, beklenen SECONDARY'ler var; quorum sabit, heartbeat hataları ve sık seçimler durdu, replika gecikmeleri düşük; uygulama yazmaları kendi write concern düzeyinde başarıyla tamamlanıyor.
6. Geri Alma / Rollback
Bakım sırasında değişen uygulama URI/altyapı ayarlarını eski doğrulanmış duruma döndürün. Gerçekleşmiş seçim geri alınmaz; rollback olup olmadığını üye logları ve veri tutarlılığıyla inceleyin.