PostgreSQL Disk Full Emergency
Covers safe capacity recovery for data, WAL and temp disks, warns against deleting database files and verifies recovery.
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.
1. Symptom & Signals
- 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. Business & Technical 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. Diagnosis & Root-Cause Analysis
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. Remediation & Action Plan
5. Verification & Health Checks
- 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. Rollback & Contingency Plan
- 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.