Clarify the role of checkpoint at the begininng of base backups
authorMagnus Hagander <magnus@hagander.net>
Sun, 26 Feb 2017 20:27:51 +0000 (21:27 +0100)
committerMagnus Hagander <magnus@hagander.net>
Sun, 26 Feb 2017 20:31:54 +0000 (21:31 +0100)
Output a message about checkpoint starting in verbose mode of
pg_basebackup, and make the documentation state more clearly that this
happens.

Author: Michael Banck

doc/src/sgml/backup.sgml
doc/src/sgml/ref/pg_basebackup.sgml
src/bin/pg_basebackup/pg_basebackup.c

index 5f009ee3d04020db3347de75817692260a93281d..12f2a14a5c7e337198f569b18a408b23b6e4d5b0 100644 (file)
@@ -862,7 +862,8 @@ SELECT pg_start_backup('label', false, false);
      <xref linkend="guc-checkpoint-completion-target">).  This is
      usually what you want, because it minimizes the impact on query
      processing.  If you want to start the backup as soon as
-     possible, change the second parameter to <literal>true</>.
+     possible, change the second parameter to <literal>true</>, which will
+     issue an immediate checkpoint using as much I/O as available.
     </para>
 
     <para>
index c9dd62c14159a695acc3beaf827dbae3b6afea83..e1cec9d60fa2b7b884279aad153125b034f5c914 100644 (file)
@@ -419,7 +419,7 @@ PostgreSQL documentation
       <term><option>--checkpoint=<replaceable class="parameter">fast|spread</replaceable></option></term>
       <listitem>
        <para>
-        Sets checkpoint mode to fast or spread (default) (see <xref linkend="backup-lowlevel-base-backup">).
+        Sets checkpoint mode to fast (immediate) or spread (default) (see <xref linkend="backup-lowlevel-base-backup">).
        </para>
       </listitem>
      </varlistentry>
@@ -659,6 +659,14 @@ PostgreSQL documentation
  <refsect1>
   <title>Notes</title>
 
+  <para>
+   At the beginning of the backup, a checkpoint needs to be written on the
+   server the backup is taken from.  Especially if the option
+   <literal>--checkpoint=fast</literal> is not used, this can take some time
+   during which <application>pg_basebackup</application> will be appear
+   to be idle.
+  </para>
+
   <para>
    The backup will include all files in the data directory and tablespaces,
    including the configuration files and any additional files placed in the
index bc997dc9973d92591b910972af4f1b2acf46ecb8..761679a4d0858939070e22edc765798243df0cf7 100644 (file)
@@ -1753,6 +1753,14 @@ BaseBackup(void)
        if (maxrate > 0)
                maxrate_clause = psprintf("MAX_RATE %u", maxrate);
 
+       if (verbose)
+               fprintf(stderr,
+                               _("%s: initiating base backup, waiting for checkpoint to complete\n"),
+                               progname);
+
+       if (showprogress && !verbose)
+               fprintf(stderr, "waiting for checkpoint\n");
+
        basebkp =
                psprintf("BASE_BACKUP LABEL '%s' %s %s %s %s %s %s",
                                 escaped_label,
@@ -1790,6 +1798,9 @@ BaseBackup(void)
 
        strlcpy(xlogstart, PQgetvalue(res, 0, 0), sizeof(xlogstart));
 
+       if (verbose)
+               fprintf(stderr, _("%s: checkpoint completed\n"), progname);
+
        /*
         * 9.3 and later sends the TLI of the starting point. With older servers,
         * assume it's the same as the latest timeline reported by