From 4303c0fdbf219028d66e1610aaa1a8e228255356 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri, 29 Jun 2007 15:46:21 +0000
Subject: [PATCH] Add a note that pg_start_backup will take awhile because of
 new distributed checkpoint behavior.  Explain how to work around this by
 issuing a manual CHECKPOINT command.  Per discussion with Heikki.

---
 doc/src/sgml/backup.sgml | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml
index 8ef3b5b9a08..454c286715b 100644
--- a/doc/src/sgml/backup.sgml
+++ b/doc/src/sgml/backup.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.97 2007/02/01 00:28:16 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.98 2007/06/29 15:46:21 tgl Exp $ -->
 
 <chapter id="backup">
  <title>Backup and Restore</title>
@@ -674,6 +674,22 @@ SELECT pg_start_backup('label');
      issue this command.  You can ignore the result returned by the function;
      but if it reports an error, deal with that before proceeding.
     </para>
+
+    <para>
+     <function>pg_start_backup</> can take a long time to finish.
+     This is because it performs a checkpoint, and the I/O
+     required for a checkpoint will be spread out over a significant
+     period of time, by default half your inter-checkpoint interval
+     (see the configuration parameter
+     <xref linkend="guc-checkpoint-completion-target">).  Usually
+     this is what you want because it minimizes the impact on query
+     processing.  If you just want to start the backup as soon as
+     possible, execute a <command>CHECKPOINT</> command
+     (which performs a checkpoint as quickly as possible) and then
+     immediately execute <function>pg_start_backup</>.  Then there
+     will be very little for <function>pg_start_backup</>'s checkpoint
+     to do, and it won't take long.
+    </para>
    </listitem>
    <listitem>
     <para>
-- 
GitLab