Re: Ambiguity in restore_command for recovery.conf - Mailing list pgsql-docs

From Michael Paquier
Subject Re: Ambiguity in restore_command for recovery.conf
Date
Msg-id 20180919024250.GE1650@paquier.xyz
Whole thread Raw
In response to Ambiguity in restore_command for recovery.conf  (PG Doc comments form <noreply@postgresql.org>)
List pgsql-docs
On Tue, Sep 18, 2018 at 04:10:17PM +0000, PG Doc comments form wrote:
> Documentation for restore_command in recovery.conf only says, "This
> parameter is required for archive recovery, but optional for streaming
> replication," but it doesn't say specifically when the restore_command
> string will be used and why. My guess is that as long as the WAL files
> are still available on the master (primary) host, the recovery will
> fetch them via the replication slot, but if a WAL is missing on the
> primary, only then will the restore_command be used. But this isn't
> explicitly stated. It could be that the restore_command is always
> used, even if the WAL file is still available on the primary.

The logic around the source used to fetch WAL segments is defined in
WaitForWALToBecomeAvailable/xlog.c.  A standby would give priority to
what is present in the local pg_wal or in the WAL archive before
switching to streaming.  If fetching a segment from the archive or the
local pg_wal fails, then a switch to streaming happens (of course if
primary_conninfo is defined).  There is nothing really linked to
replication slots in this case.
--
Michael

Attachment

pgsql-docs by date:

Previous
From: PG Doc comments form
Date:
Subject: Punctuation error
Next
From: Michael Paquier
Date:
Subject: Re: Mention FK creation take ShareRowExclusiveLock on referencedtable