File creation dates of archived WAL files not in line with archive_timeout in PostgreSQL 9.6
-
10-10-2020 - |
Question
I have configured archive_timeout = 5
(i.e. 5 seconds) for a PostgreSQL 9.6 database in order to conduct tests around point-in-time recovery. My archive_command
invokes cp
into a local archive directory.
If I check the file modification dates in that local archive directory I see that WAL files are typically created in there only approx. every 20 seconds apart, i.e. far more than the configured 5 seconds. This is for PostgreSQL 9.6 running inside a Docker container on a lightly loaded system.
What could explain this large discrepancy?
La solution
The documentation has an answer to this:
When this parameter is greater than zero, the server will switch to a new segment file whenever this many seconds have elapsed since the last segment file switch, and there has been any database activity, including a single checkpoint (checkpoints are skipped if there is no database activity).
Based on your observation and the above quote, I guess you have a checkpoint every 20 seconds or so, and a very low rate of changes.