dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Runbooks Library/mongodb/#53
Runbook #53
mongodb
CapacitySEV1 · CRITICAL OUTAGE15-30 dakika / 15-30 minsclusterAdmin / dbAdminAnyDatabase / root

MongoDB Data Disk Full: Safe Space Recovery

Investigates dbPath growth, replica topology, and backup constraints to recover safely from a full MongoDB data disk.

Related Metrics:M56
Related Scripts:S91S82S95
#disk-full#dbPath#WiredTiger#oplog

Operational Safety & Risk Notice

This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.

🟢 Salt Okunur (Read-Only)·🟡 Geri Alınabilir (Reversible)·🔴 Yüksek Etkili / Geri Alınamaz (High Impact)

1. Symptom & Signals

M56 boş alanı kritik seviyeye düşer; loglarda `No space left on device`, WiredTiger yazma hatası veya servis durması görülebilir. Dosya sistemi inode kullanımını da kontrol edin.

2. Business & Technical Impact

Yazmalar başarısız olabilir, servis durabilir; primary etkilenirse seçim gerçekleşir. Ani `rm` veya plansız yeniden başlatma kurtarma riskini büyütür.

3. Diagnosis & Root-Cause Analysis

🟢 Read-Only1. İşletim sisteminde doğru `dbPath` ve dosya sistemini belirleyin; varsayılan yol her kurulumda aynı değildir:
bash
df -h /var/lib/mongodb
df -i /var/lib/mongodb

Yol farklıysa yapılandırmadaki `storage.dbPath` değerine göre değiştirin. Oplog, journal, log, snapshot/backup hedefleri ve inode kullanımını ayrı değerlendirin.

🟢 Read-Only2. Sunucu yanıt veriyorsa toplam veri/indeks boyutlarını (S91, S82) ve TTL politikasını (S95) inceleyin:
javascript
const names = db.adminCommand({ listDatabases: 1 }).databases;
names.map(x => {
  const s = db.getSiblingDB(x.name).stats();
  return { db: x.name, storageGB: +(s.storageSize / 1073741824).toFixed(1),
           indexGB: +(s.indexSize / 1073741824).toFixed(1) };
});
🟢 Read-Only3. Replikada hangi üye dolu? Quorum var mı? Diskle aynı hacimde duran snapshot veya dış log dosyası varsa motor dosyalarından ayrı değerlendirin.

4. Remediation & Action Plan

🟡 Reversible1. En güvenli ilk adım, **dosya sistemine kapasite eklemek** (bulut disk genişletme + filesystem grow işlemi); servis devam ediyorsa yazma/toplu import hızını azaltın. Dosya sistemi genişletmesini altyapı prosedürüne göre yapın.
🟡 Reversible2. **Yalnızca motorun kullanmadığı**, konumu ve saklama politikası doğrulanmış bağımsız log/backup dosyalarını başka hacme taşıyın; aktif log dosyasını taşımayın. Sağlıklı yedeği doğrulayın.
🟡 Reversible3. Eski veriyi silmek uygulama tarafında veri saklama kararıdır; doküman silme genellikle WiredTiger dosyasını işletim sistemine **hemen küçültmez**. TTL (S95) kapasite artışını kontrol etmek içindir, acil disk açma garantisi değildir.
🔴 HIGH RISK / IRREVERSIBLE4. **dbPath'teki `WiredTiger*`, `collection-*.wt`, `index-*.wt`, `journal`, `local.oplog.rs` dosyalarını elle silmeyin.** Veri kaybı veya kurtarılamayan başlangıç hatası doğar. `compact`/resync dolu disk üzerinde körlemesine denenmez, boş disk ve replika planı gerektirir. Yedeği doğrulamadan `--repair` çalıştırmayın.

5. Verification & Health Checks

M56 boş alan payı güvenli seviyeye döndü, yeni yazmalar başarılı, replika üye durumları sağlıklı, mongod logunda yeni disk hatası yok. Büyüme tahminine göre tekrar dolma zamanı hesaplandı.

6. Rollback & Contingency Plan

Kapasite büyütme genelde küçültülemez; değişiklik kaydını tutun. Silinmiş veri/dosya ancak doğrulanmış yedekten geri döner; belge silmeyi acil alan açma tekniği saymayın.

More MONGODB Runbooks