PostgreSQL WAL Dizini Doluyor
WAL büyümesini replikasyon slotu, arşivleme, replika ve yazma yükü olarak ayırır; dosyaları elle silmeden güvenli alan kazanma sırasını gösterir.
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
- M4 bir slotta tutulan WAL miktarını yüksek gösterir veya WAL dosya sisteminde boş alan hızla azalır.
- Log'da `No space left on device` ya da `archive command failed` görülebilir.
2. Etki / Impact
WAL diski dolduğunda yazma ve checkpoint etkilenir; veri tabanı kesintisi riski vardır. Arşiv kaybı PITR'yi, slot silme replika/CDC sürekliliğini tehlikeye atar.
3. Teşhis / Diagnosis
SHOW data_directory;
SHOW archive_mode;
SHOW archive_command;df -h /var/lib/postgresql/data/pg_walSELECT slot_name, slot_type, active, restart_lsn,
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn)) AS retained_wal
FROM pg_replication_slots ORDER BY pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn) DESC NULLS LAST;SELECT archived_count, failed_count, last_failed_wal, last_failed_time,
last_archived_time FROM pg_stat_archiver;
SELECT application_name, state, replay_lsn FROM pg_stat_replication;`failed_count` kümülatiftir; iki örnek arasındaki farkı alın. `archive_command` başarısızsa WAL temizlenmesi durabilir; `pg_stat_archiver` metriklerine tek başına değil loglara da bakın.
4. Müdahale / Response
SELECT pg_drop_replication_slot('terk_edilmis_slot');Aktif slot silinemez; işlem CDC tüketicisini veya standby'ı yeniden kurmaya zorlayabilir.
5. Doğrulama / Verification
- Disk boş alanı yeniden güvenli seviyeye dönüyor; `failed_count` artışı durdu; gerekli slotlar ve replikalar çalışıyor.
- Yeni WAL arşivleniyor; geri yükleme/PITR zinciri doğrulanıyor.
6. Geri Alma / Rollback
- Silinen slot geri alınamaz; tüketicinin konumuna göre yeniden oluşturulması veya tekrar senkronizasyon gerekir.
- Arşiv komutu ve slot boyutu ayarları önceki değerine döndürülebilir, ancak atlanmış arşiv kopyaları geriye dönük üretilemez.