Skip to content

Commit

Permalink
Clarify the role of checkpoint at the begininng of base backups
Browse files Browse the repository at this point in the history
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
  • Loading branch information
mhagander committed Feb 26, 2017
1 parent caa6c1f commit 51e26c9
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
3 changes: 2 additions & 1 deletion doc/src/sgml/backup.sgml
Expand Up @@ -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>
Expand Down
10 changes: 9 additions & 1 deletion doc/src/sgml/ref/pg_basebackup.sgml
Expand Up @@ -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>
Expand Down Expand Up @@ -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
Expand Down
11 changes: 11 additions & 0 deletions src/bin/pg_basebackup/pg_basebackup.c
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 51e26c9

Please sign in to comment.