Parameter · Write-Ahead Log / Summarization
summarize_wal
Starts the WAL summarizer process to enable incremental backup.
- Default:
off - Type: bool
- Applies: Reload
In plain words
Since PostgreSQL 17, pg_basebackup --incremental can back up only the blocks that changed since a previous backup. To know which blocks changed, a background process, the WAL summarizer, reads the WAL and writes small summary files. summarize_wal = on starts it.
For DBAs and operators
Summaries go to pg_wal/summaries/, one file per range of WAL, listing modified blocks per relation fork. An incremental backup needs summaries covering the whole WAL range since the reference backup's start; otherwise: ERROR: incremental backups cannot be taken unless WAL summarization is enabled or "WAL summaries are required on timeline 1 from 0/5000028 to 0/9000060, but no summaries for that timeline and LSN range exist". Combine the chain with pg_combinebackup.
- Works on primary or standby; cannot be on with
wal_level = minimal. - Overhead is small (it reads WAL, usually from cache). If it falls behind, WAL is retained until summarized.
- Monitor:
SELECT * FROM pg_get_wal_summarizer_state();andpg_available_wal_summaries(); the process appears asbackend_type = 'walsummarizer'.
How to change it
Change in postgresql.conf or ALTER SYSTEM, then run SELECT pg_reload_conf().