MongoDB Bağlantı Kopması: Port 27017 Engelleri, DNS SRV Hataları ve Havuz Boşalması (PoolClearedError)
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ı.
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
İstemci MongoDB kümesine bağlanırken aniden tüm bağlantılar düşer:
MongoNetworkError: connection timed out
MongoServerSelectionError: HostUnreachable: No route to host
PoolClearedError: Connection pool for 10.0.0.5:27017 was cleared because another operation failed with: MongoNetworkError▸Sahada Ne Görürsün?
Primary düğüm çöktüğünde veya bakım yapıldığında uygulama yeni Primary seçilene kadar kilitlenir. DNS SRV (mongodb+srv://) çözülemediğinde tüm pod'lar CrashLoopBackOff'a girer.
▸Kök Neden Matrisi
| Olasılık | Kök Neden | Açıklama |
|---|---|---|
| %50 | Failover Sırasında Havuz Temizlenmesi | Birincil düğüm adım attığında (stepdown), sürücü eski soketleri kapatıp PoolClearedError fırlatır; retryWrites=true yoksa işlemler abort olur. |
| %30 | Firewall / Security Group 27017 Engeli | Yeni ayağa kalkan pod'un alt ağı port 27017 için güvenlik grubuna eklenmemiştir. |
| %20 | DNS SRV / replicaSet Parametresi Eksikliği | Bağlantı dizesinde replicaSet=rs0 parametresi unutulmuş, sürücü standalone modda davranmaktadır. |
▸ACİL RUNBOOK (0-5dk)
# 1. Replica set sağlığını ve üyeleri kontrol et
mongosh --host "rs0/10.0.0.5:27017,10.0.0.6:27017,10.0.0.7:27017" --eval "rs.status()"
# 2. Port erişimini test et
nc -zv -w 3 10.0.0.5 27017
# 3. DNS SRV kaydını sorgula
dig SRV _mongodb._tcp.cluster0.example.com▸KALICI BLUEPRINT
- 1Doğru Bağlantı Dizesi Standardı: Sürücünün otomatik failover yapabilmesi için bağlantı dizesinde tüm parametreler açıkça tanımlanmalıdır:
mongodb://node1:27017,node2:27017,node3:27017/prod?replicaSet=rs0&readPreference=primaryPreferred&retryWrites=true&serverSelectionTimeoutMS=5000&connectTimeoutMS=10000- 1En Az 3 Düğümlü Replica Set: Asla 2 düğümlü küme kurulmamalı; en az 3 oylama hakkına sahip veri düğümü veya arbiter bulunmalıdır.
▸Doğrulama
rs.isMaster().ismaster || rs.hello().isWritablePrimary;Diğ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 WriteConcernFailed & wtimeout Teşhisi
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.