Skip to content

Write-Ahead Log

Complete dossiers for 41 core PostgreSQL settings in Write-Ahead Log.

Dossier URLs remain flat; this category exists only to organize browsing and the sidebar.

archive_cleanup_command

archive_cleanup_command sets the shell command that will be executed at every restart point. It is a sighup setting present in PG12–18; the latest recorded boot default is empty.

archive_command

archive_command — Sets the shell command that will be called to archive a WAL file. Observed in PG9.0–19 Beta 3; its last measured boot default is empty string in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

archive_library

archive_library sets the library that will be called to archive a WAL file. It is a sighup setting present in PG15–18; the latest recorded boot default is empty.

archive_mode

archive_mode — Allows archiving of WAL files using “archive_command”. Observed in PG9.0–19 Beta 3; its last measured boot default is off in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

archive_timeout

archive_timeout — Sets the amount of time to wait before forcing a switch to the next WAL file. Observed in PG9.0–19 Beta 3; its last measured boot default is 0 s in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

checkpoint_completion_target

checkpoint_completion_target — Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval. Observed in PG9.0–19 Beta 3; its last measured boot default is 0.9 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

checkpoint_flush_after

checkpoint_flush_after — Number of pages after which previously performed writes are flushed to disk. Observed in PG9.6–19 Beta 3; its last measured boot default is 256 KiB (32 × 8kB) in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

checkpoint_segments

checkpoint_segments — Sets the maximum distance in log segments between automatic WAL checkpoints. Observed in PG9.0–9.4; its last measured boot default is 3 in PG9.4, with sighup context. It was removed in PG9.5.

checkpoint_timeout

checkpoint_timeout — Sets the maximum time between automatic WAL checkpoints. Observed in PG9.0–19 Beta 3; its last measured boot default is 5 min in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

checkpoint_warning

checkpoint_warning — Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently. Observed in PG9.0–19 Beta 3; its last measured boot default is 30 s in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

commit_delay

commit_delay — Sets the delay in microseconds between transaction commit and flushing WAL to disk. Observed in PG9.0–19 Beta 3; its last measured boot default is 0 in PG19 Beta 3, with superuser context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

commit_siblings

commit_siblings — Sets the minimum number of concurrent open transactions required before performing “commit_delay”. Observed in PG9.0–19 Beta 3; its last measured boot default is 5 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

fsync

fsync — Forces synchronization of updates to disk. Observed in PG9.0–19 Beta 3; its last measured boot default is on in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

full_page_writes

full_page_writes — Writes full pages to WAL when first modified after a checkpoint. Observed in PG9.0–19 Beta 3; its last measured boot default is on in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

max_wal_size

max_wal_size — Sets the WAL size that triggers a checkpoint. Observed in PG9.5–19 Beta 3; its last measured boot default is 1 GiB in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

min_wal_size

min_wal_size — Sets the minimum size to shrink the WAL to. Observed in PG9.5–19 Beta 3; its last measured boot default is 80 MiB in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

recovery_end_command

recovery_end_command sets the shell command that will be executed once at the end of recovery. It is a sighup setting present in PG12–18; the latest recorded boot default is empty.

recovery_prefetch

recovery_prefetch prefetches referenced blocks during recovery. It is a sighup setting present in PG15–18; the latest recorded boot default is try.

recovery_target

recovery_target can be set to “immediate” to end recovery as soon as a consistent state is reached. It is a postmaster setting present in PG12–18; the latest recorded boot default is empty.

recovery_target_action

recovery_target_action sets the action to perform upon reaching the recovery target. It is a postmaster setting present in PG12–18; the latest recorded boot default is pause.

recovery_target_inclusive

recovery_target_inclusive sets whether to include or exclude transaction with recovery target. It is a postmaster setting present in PG12–18; the latest recorded boot default is on.

recovery_target_lsn

recovery_target_lsn sets the LSN of the write-ahead log location up to which recovery will proceed. It is a postmaster setting present in PG12–18; the latest recorded boot default is empty.

recovery_target_name

recovery_target_name sets the named restore point up to which recovery will proceed. It is a postmaster setting present in PG12–18; the latest recorded boot default is empty.

recovery_target_time

recovery_target_time sets the time stamp up to which recovery will proceed. It is a postmaster setting present in PG12–18; the latest recorded boot default is empty.

recovery_target_timeline

recovery_target_timeline specifies the timeline to recover into. It is a postmaster setting present in PG12–18; the latest recorded boot default is latest.

recovery_target_xid

recovery_target_xid sets the transaction ID up to which recovery will proceed. It is a postmaster setting present in PG12–18; the latest recorded boot default is empty.

restore_command

restore_command sets the shell command that will be called to retrieve an archived WAL file. It is a sighup setting present in PG12–18; the latest recorded boot default is empty.

summarize_wal

summarize_wal starts the WAL summarizer process to enable incremental backup. It is a sighup setting present in PG17–18; the latest recorded boot default is off.

synchronous_commit

synchronous_commit — Sets the current transaction’s synchronization level. Observed in PG9.0–19 Beta 3; its last measured boot default is on in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

wal_buffers

wal_buffers — Sets the number of disk-page buffers in shared memory for WAL. Observed in PG9.0–19 Beta 3; its last measured boot default is -1 8kB in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

wal_compression

wal_compression — Compresses full-page writes written in WAL file with specified method. Observed in PG9.5–19 Beta 3; its last measured boot default is off in PG19 Beta 3, with superuser context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

wal_decode_buffer_size

wal_decode_buffer_size sets the buffer size for reading ahead in the WAL during recovery. It is a postmaster setting present in PG15–18; the latest recorded boot default is 512 KiB.

wal_init_zero

wal_init_zero writes zeroes to new WAL files before first use. It is a superuser setting present in PG12–18; the latest recorded boot default is on.

wal_level

wal_level — Sets the level of information written to the WAL. Observed in PG9.0–19 Beta 3; its last measured boot default is replica in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

wal_log_hints

wal_log_hints — Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification. Observed in PG9.4–19 Beta 3; its last measured boot default is off in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

wal_recycle

wal_recycle recycles WAL files by renaming them. It is a superuser setting present in PG12–18; the latest recorded boot default is on.

wal_skip_threshold

wal_skip_threshold sets the minimum size of new file to fsync instead of writing WAL. It is a user setting present in PG13–18; the latest recorded boot default is 2 MiB.

wal_summary_keep_time

wal_summary_keep_time sets the time for which WAL summary files should be kept. It is a sighup setting present in PG17–18; the latest recorded boot default is 10 d.

wal_sync_method

wal_sync_method — Selects the method used for forcing WAL updates to disk. Observed in PG9.0–19 Beta 3; its last measured boot default is fdatasync in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

wal_writer_delay

wal_writer_delay — Time between WAL flushes performed in the WAL writer. Observed in PG9.0–19 Beta 3; its last measured boot default is 200 ms in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

wal_writer_flush_after

wal_writer_flush_after — Amount of WAL written out by WAL writer that triggers a flush. Observed in PG9.6–19 Beta 3; its last measured boot default is 1 MiB (128 × 8kB) in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.