Document that archive_timeout will force new WAL files even if a single

checkpoint has happened, and recommend adjusting checkpoint_timeout to
reduce the impact of this.
This commit is contained in:
Bruce Momjian 2010-02-05 23:37:43 +00:00
parent ef51fa505c
commit 4b113d9cdc
2 changed files with 11 additions and 4 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.249 2010/02/03 17:25:05 momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.250 2010/02/05 23:37:43 momjian Exp $ -->
<chapter Id="runtime-config">
<title>Server Configuration</title>
@ -1739,7 +1739,11 @@ archive_command = 'copy "%p" "C:\\server\\archivedir\\%f"' # Windows
server to switch to a new WAL segment file periodically. 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. Note that archived files that are closed early
segment file switch, and there has been any database activity,
including a single checkpoint. (Increasing
<varname>checkpoint_timeout</> will reduce unnecessary
checkpoints on an idle system.)
Note that archived files that are closed early
due to a forced switch are still the same length as completely full
files. Therefore, it is unwise to use a very short
<varname>archive_timeout</> &mdash; it will bloat your archive

View File

@ -38,7 +38,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.66 2010/01/15 09:19:02 heikki Exp $
* $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.67 2010/02/05 23:37:43 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -543,7 +543,10 @@ BackgroundWriterMain(void)
/*
* CheckArchiveTimeout -- check for archive_timeout and switch xlog files
* if needed
*
* This will switch to a new WAL file and force an archive file write
* if any activity is recorded in the current WAL file, including just
* a single checkpoint record.
*/
static void
CheckArchiveTimeout(void)