Configuration parameter

wal_summary_keep_time — PostgreSQL configuration parameter

Category Write Ahead Log Default 10 days Change scope Sighup

Configures the amount of time after which the WAL summarizer automatically removes old WAL summaries.

At a glance

Property Value
Parameter wal_summary_keep_time
Category Write Ahead Log
Default 10
Value type integer
Change scope Reload (postgresql.conf, SIGHUP)
Available in PostgreSQL 17, 18, 19 (added in 17)

What it does

Configures the amount of time after which the WAL summarizer automatically removes old WAL summaries. The file timestamp is used to determine which files are old enough to remove. Typically, you should set this comfortably higher than the time that could pass between a backup and a later incremental backup that depends on it. WAL summaries must be available for the entire range of WAL records between the preceding backup and the new one being taken; if not, the incremental backup will fail. If this parameter is set to zero, WAL summaries will not be automatically deleted, but it is safe to manually remove files that you know will not be required for future incremental backups. This parameter can only be set in the postgresql.conf file or on the server command line. If this value is specified without units, it is taken as minutes. The default is 10 days. If summarize_wal = off, existing WAL summaries will not be removed regardless of the value of this parameter, because the WAL summarizer will not run.

(Description quoted from the official PostgreSQL documentation.)

How to apply a change

Set it in postgresql.conf (or with ALTER SYSTEM) and reload with SELECT pg_reload_conf(); or pg_ctl reload — no restart needed.

Inspect the current value and source with SHOW wal_summary_keep_time; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'wal_summary_keep_time';.

Tuning guidance

This parameter is rarely a performance lever. Leave it at the default unless you have a specific, documented reason to change it, change it on one session or one role/database first, and confirm the effect with pg_settings and your own measurements before rolling it out cluster-wide.

Reference

PostgreSQL documentation — wal_summary_keep_time.

Keep going

Related & next steps

Concepts on this page

Was this helpful?

← All configuration parameters