]> granicus.if.org Git - postgresql/commitdiff
Back-patch checkpoint clarification docs and pg_basebackup updates
authorMagnus Hagander <magnus@hagander.net>
Sat, 1 Apr 2017 15:20:05 +0000 (17:20 +0200)
committerMagnus Hagander <magnus@hagander.net>
Sat, 1 Apr 2017 15:27:33 +0000 (17:27 +0200)
This backpatches 51e26c9 and 7220c7b, including both documentation
updates clarifying the checkpoints at the beginning of base backups and
the messages in verbose and progress mdoe of pg_basebackup.

Author: Michael Banck
Discussion: https://postgr.es/m/21444.1488142764%40sss.pgh.pa.us

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

index 7f1a608bd94c6308f42886a4b0f746b3bab36556..00236d2fb72764566f6c9ea981a42ad65567e525 100644 (file)
@@ -361,7 +361,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>
@@ -568,6 +568,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 ad0631f5307694cce501a03001f6ea658218ab83..2805da5fa7b41549c27b2ff3bffa4435f1cde345 100644 (file)
@@ -1655,6 +1655,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\r");
+
        basebkp =
                psprintf("BASE_BACKUP LABEL '%s' %s %s %s %s %s",
                                 escaped_label,
@@ -1691,6 +1699,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