MongoDB Çoğaltma Onayı Zaman Aşımı: w:majority Gecikmesi, İkincil Düğüm Lag'i ve Çözüm Adımları
Replica set üyelerinden birinin çevrimdışı olması veya aşırı ikincil lag nedeniyle majority onayının verilememesi; rs.printSecondaryReplicationInfo() analizi ve wtimeout bütçesi.
Operasyonel Doğrulama & Güvenilirlik Standardı
Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.
▸Belirti
Uygulama veri eklerken işlem uzun süre bekler ve zaman aşımıyla düşer:
WriteConcernFailed: waiting for replication timed out. w: majority, wtimeout: 5000▸Sahada Ne Görürsün?
Primary veriyi yerel diske yazar ancak çoğunluk (majority) düğümden onay gelmediği için istemciye hata döner. Kullanıcılar ödeme veya sipariş işlemlerinde zaman aşımı yaşar.
▸Kök Neden Matrisi
| Olasılık | Kök Neden | Açıklama |
|---|---|---|
| %60 | İkincil Düğüm (Secondary) Ağ / Disk Lag'i | Secondary düğüm ağır okuma yükü veya yavaş disk nedeniyle oplog çoğaltmasında geride kalmıştır. |
| %30 | Düğümlerden Birinin Çevrimdışı Olması | 3 düğümlü kümede 1 düğüm düşerse kalan tek secondary geciktiği anda majority zaman aşımına girer. |
| %10 | `wtimeout: 0` (Sonsuz Bekleme) Antipattern'ı | Süre sınırı tanımlanmadığı için istekler havuzu kilitler. |
▸ACİL RUNBOOK (0-5dk)
// 1. Replikasyon gecikmesini (lag) incele
rs.printSecondaryReplicationInfo();
// 2. Küme durumunu ve düğüm sağlıklarını gör
rs.status();
// 3. Oplog boyutunu ve pencere süresini denetle
db.printReplicationInfo();▸KALICI BLUEPRINT
- 1Süreli wtimeout Standardı:
w: "majority"kullanılırken ASLAwtimeout: 0bırakılmamalı; istemcinin sonsuza kadar kilitlenmemesi için mutlaka bütçe konmalıdır (wtimeout: 5000). - 2Secondary Disk Performansı: İkincil düğümlerin IOPS kapasitesi Primary ile birebir eşit olmalıdır.
▸Doğrulama
rs.printSecondaryReplicationInfo();
// Çıktıda '0 secs behind the primary' görülmelidirDiğer Veritabanı Hata Teşhisleri
Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.
MongoDB "not master" / NotWritablePrimary Hatası
Failover sonrası "not master" hatasının nedeni, replicaSet içermeyen bağlantı dizesi, retryWrites ve election fırtınası teşhisi.
MongoDB E11000: Duplicate Key Error Teşhisi ve Çözümü
Aynı anahtara sahip iki dokümanın eşzamanlı eklenmesiyle oluşan E11000 hatasının tespiti, getIndexes denetimi ve $setOnInsert ile upsert desenleri.
MongoDB MongoNetworkError & HostUnreachable Teşhisi
Replica set primary düğümünün çökmesi, yanlış mongodb+srv dizesi ve ağ gecikmelerinde sürücünün bağlantı havuzunu temizlemesi; rs.status() ve kalıcı timeout ayarları.