diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index d6c739d96b..a5f520057e 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ - + Server Configuration @@ -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 + 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 archive_timeout — it will bloat your archive diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c index b51cceea74..9a3956a509 100644 --- a/src/backend/postmaster/bgwriter.c +++ b/src/backend/postmaster/bgwriter.c @@ -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)