dataiotech Labs
Home/Saha/Vaka / Post-Mortem
Real-World Post-Mortems & Incident Analyses

Vaka Çalışmaları (Post-Mortem)

Gerçek üretim (production) krizleri, kök nedenler, uygulanan çözümler ve çıkarılan dersler.

Motor Filtresi:
Karşılaşılan Sorun:

Yoğun işlem gören 12 TB'lık e-ticaret veritabanı aniden tüm yazma ve okuma işlemlerini durdurarak "database is not accepting commands to avoid wraparound data loss" hatası verdi.

Kök Neden:

Autovacuum süreçleri uzun süren analitik sorgular ve yetersiz worker ayarları (`autovacuum_max_workers=3`) yüzünden eski satırları donduramadı (vacuum freeze gecikti) ve işlem sayacı 2 milyar sınırına ulaştı.

Uygulanan Çözüm:

Veritabanı Single-User moda (`postgres --single -D /var/lib/postgresql/data`) alındı. `VACUUM FREEZE ANALYZE VERBOSE` komutu doğrudan en yaşlı tablolar üzerinde çalıştırılarak TXID sayaçları sıfırlandı.

Kazanılan Deneyim:

`autovacuum_freeze_max_age` eşiği ve `datfrozenxid` yaşı Prometheus ile sürekli izlenmeli; %70 dolulukta kritik alarm üretilmeli.

Teşhis & Kurtarma Komutu:
SELECT datname, age(datfrozenxid), 2147483648 - age(datfrozenxid) AS remaining_txids FROM pg_database ORDER BY 2 DESC;