DB Internals AtlasPostgreSQL 18.6 Home About

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(); and pg_available_wal_summaries(); the process appears as backend_type = 'walsummarizer'.

How to change it

Change in postgresql.conf or ALTER SYSTEM, then run SELECT pg_reload_conf().

See it in context

WAL summarizer Archiving and point-in-time recovery

Related parameters

wal_summary_keep_time wal_level

All Write-Ahead Log parameters