aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2017-02-26 21:27:51 +0100
committerMagnus Hagander <magnus@hagander.net>2017-02-26 21:31:54 +0100
commit51e26c9c3d2904b65041fc4a19c72c62508f63d4 (patch)
tree7b681c907c72cd50873a04f9b3ee94c85c4cba6c
parentcaa6c1f193a9ab4b4fb9b8687f41e6d66bbeaade (diff)
downloadpostgresql-51e26c9c3d2904b65041fc4a19c72c62508f63d4.tar.gz
postgresql-51e26c9c3d2904b65041fc4a19c72c62508f63d4.zip
Clarify the role of checkpoint at the begininng of base backups
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
-rw-r--r--doc/src/sgml/backup.sgml3
-rw-r--r--doc/src/sgml/ref/pg_basebackup.sgml10
-rw-r--r--src/bin/pg_basebackup/pg_basebackup.c11
3 files changed, 22 insertions, 2 deletions
diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml
index 5f009ee3d04..12f2a14a5c7 100644
--- a/doc/src/sgml/backup.sgml
+++ b/doc/src/sgml/backup.sgml
@@ -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>
diff --git a/doc/src/sgml/ref/pg_basebackup.sgml b/doc/src/sgml/ref/pg_basebackup.sgml
index c9dd62c1415..e1cec9d60fa 100644
--- a/doc/src/sgml/ref/pg_basebackup.sgml
+++ b/doc/src/sgml/ref/pg_basebackup.sgml
@@ -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>
@@ -660,6 +660,14 @@ PostgreSQL documentation
<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
directory by third parties, except certain temporary files managed by
diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c
index bc997dc9973..761679a4d08 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -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