2. WAL & Write-Ahead Logging
Gestion du journal de transactions, impact direct sur la durabilité, les performances et la réplication.
Objectif: 🎯 Objectif du composant
Garantir la durabilité des transactions tout en limitant les coûts d’écriture disque. Un bon réglage WAL améliore la réplication, la restauration, et évite les pics de latence liés aux checkpoints.
Paramètres: ⚙️ Paramètres concernés
wal_level, fsync, full_page_writes, wal_buffers, commit_delay, checkpoint_timeout, archive_mode, archive_command, etc.
Bonnes pratiques: ✅ Bonnes pratiques
- wal_level = 'replica' sauf si logique - wal_buffers ≥ 4MB - checkpoint_completion_target = 0.9 - Activer full_page_writes sauf disques haute fiabilité
Pièges à éviter: ⚠️ Pièges à éviter
- checkpoint_timeout trop court = stress disque - archive_mode sans archive_command = blocage - wal_level = minimal = pas de réplication
Recommandations: 👤 Recommandations par profil
OLTP : checkpoints 10–15min Analytics : checkpoints plus espacés, wal_buffers augmentés Réplicas : wal_level = 'replica' ou 'logical'
Exemples: 🧪 Exemples de réglage
ALTER SYSTEM SET wal_level = 'replica'; ALTER SYSTEM SET checkpoint_timeout = '10min'; ALTER SYSTEM SET checkpoint_completion_target = 0.9;
Commandes utiles: 🛠️ Commandes utiles
SHOW wal_level; SELECT * FROM pg_stat_bgwriter; SELECT * FROM pg_stat_archiver;
Références: 🔗 Références officielles
- https://www.postgresql.org/docs/current/wal-intro.html - https://www.postgresql.org/docs/current/runtime-config-wal.html - https://www.pgbarman.org/ - https://www.pgbackrest.org/
