-
+
Server Configuration
doesn't keep any extra segments for standby purposes, and the number
of old WAL segments available to standby servers is a function of
the location of the previous checkpoint and status of WAL
- archiving. This parameter can only be set in the
+ archiving. This parameter has no effect on restartpoints.
+ This parameter can only be set in the
postgresql.conf> file or on the server command line.
-
+
Reliability and the Write-Ahead Log
There will always be at least one WAL segment file, and will normally
not be more than (2 + checkpoint_completion_target) * checkpoint_segments + 1
+ or checkpoint_segments> + + 1
files. Each segment file is normally 16 MB (though this size can be
altered when building the server). You can use this to estimate space
of recycled until the system gets back under this limit.
+ In archive recovery or standby mode, the server periodically performs
+
restartpoints>restartpoint>>
+ which are similar to checkpoints in normal operation: the server forces
+ all its state to disk, updates the pg_control> file to
+ indicate that the already-processed WAL data need not be scanned again,
+ and then recycles any old log segment files in pg_xlog>
+ directory. A restartpoint is triggered if at least one checkpoint record
+ has been replayed and checkpoint_timeout> seconds have passed
+ since last restartpoint. In standby mode, a restartpoint is also triggered
+ if checkoint_segments> log segments have been replayed since
+ last restartpoint and at least one checkpoint record has been replayed.
+ Restartpoints can't be performed more frequently than checkpoints in the
+ master because restartpoints can only be performed at checkpoint records.
+
+
There are two commonly used internal
WAL functions:
LogInsert and LogFlush.