PostgreSQL Disk Doldu Acil Müdahale
Veri, WAL ve geçici alan doluluğunda güvenli kapasite kazanma adımlarını, dosya silme anti-pattern'lerini ve kurtarma doğrulamasını açıklar.
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
- M12 boş alan < %10 veya loglarda `No space left on device` / `could not write`.
- Yazmalar hata verir; WAL disk doluluğunda PostgreSQL kapanabilir veya yeniden başlatma döngüsüne girebilir.
2. Etki / Impact
Veri yazma, WAL ve sorgu geçici dosyaları etkilenir; veri bütünlüğü ve kurtarma zinciri riski vardır. Hangi mount'ın dolduğunu bulmadan dosya silmek olayı büyütür.
3. Teşhis / Diagnosis
SHOW data_directory;
SELECT spcname, pg_tablespace_location(oid) AS location
FROM pg_tablespace WHERE oid >= 16384;
SELECT slot_name, active, restart_lsn FROM pg_replication_slots;df -h /var/lib/postgresql/data
# Gerçek data_directory ve pg_wal yolunu kendi kurulumunuzdan alın;
# symlink/ayrı disk varsa hedef mount'ı ayrıca kontrol edin.4. Müdahale / Response
5. Doğrulama / Verification
- Gerçek dolu mount'ta güvenli boş alan (> %20 hedef) var; M12 normalleşti, uygulama yazma testi başarılı.
- `pg_stat_archiver` yeniden arşivliyor; gerekli replikalar streaming. En az bir saat büyüme eğilimi ölçülüyor.
6. Geri Alma / Rollback
- Kapasite artırımı çoğu altyapıda geri alınamaz veya risklidir; eski disk sınırına dönerken doluluk payını doğrulayın.
- İptal edilmiş sorgu yeniden denenebilir; silinmiş WAL/veri dosyalarını geri alma garantisi yoktur, bu nedenle elle silme yasaktır.