# 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.

---

Section pages:

- [archive_cleanup_command](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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](/parameters/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.
