postgres.git / summary / log / commit / refs

commit    51e26c9c3d2904b65041fc4a19c72c62508f63d4
Author:   Magnus Hagander <magnus@hagander.net>
Date:     Sun Feb 26 20:27:51 2017 +0000

    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


doc/src/sgml/backup.sgml | 3 ++- doc/src/sgml/ref/pg_basebackup.sgml | 10 +++++++++- src/bin/pg_basebackup/pg_basebackup.c | 11 +++++++++++ 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> @@ -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 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 [parent: caa6c1f193a9]