Thread: A streaming replica catching up

A streaming replica catching up

From
Victor Sudakov
Date:
Dear Colleagues,

After a streaming standby has been down for a time, I know of two
options for it to catch up with the master:

1. The replica can fetch all the necessary WAL records via the
replication protocol from the master (unless max_slot_wal_keep_size is
not the default -1, all the required WAL archives should be available from
the master).

2. The replica can be provided with a restore_command and will fetch
all WAL files from the WAL archive before starting streaming WAL from
the master.

Which is the preferred way? 

Of course if max_slot_wal_keep_size is limited, the second options seems
the only safe one.

OTOH, if the master does not write to a WAL archive, only the first
option is left to us.

-- 
Victor Sudakov VAS4-RIPE
http://vas.tomsk.ru/
2:5005/49@fidonet



Re: A streaming replica catching up

From
Laurenz Albe
Date:
On Thu, 2021-04-22 at 10:16 +0700, Victor Sudakov wrote:
> After a streaming standby has been down for a time, I know of two
> options for it to catch up with the master:
> 
> 1. The replica can fetch all the necessary WAL records via the
> replication protocol from the master (unless max_slot_wal_keep_size is
> not the default -1, all the required WAL archives should be available from
> the master).
> 
> 2. The replica can be provided with a restore_command and will fetch
> all WAL files from the WAL archive before starting streaming WAL from
> the master.
> 
> Which is the preferred way? 
> 
> Of course if max_slot_wal_keep_size is limited, the second options seems
> the only safe one.
> 
> OTOH, if the master does not write to a WAL archive, only the first
> option is left to us.

Both methods are equally feasible.  Which one you choose depends on
your situation, just as you describe in the last two sentences.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com




Re: A streaming replica catching up

From
Victor Sudakov
Date:
Laurenz Albe wrote:
> On Thu, 2021-04-22 at 10:16 +0700, Victor Sudakov wrote:
> > After a streaming standby has been down for a time, I know of two
> > options for it to catch up with the master:
> > 
> > 1. The replica can fetch all the necessary WAL records via the
> > replication protocol from the master (unless max_slot_wal_keep_size is
> > not the default -1, all the required WAL archives should be available from
> > the master).
> > 
> > 2. The replica can be provided with a restore_command and will fetch
> > all WAL files from the WAL archive before starting streaming WAL from
> > the master.
> > 
> > Which is the preferred way? 
> > 
> > Of course if max_slot_wal_keep_size is limited, the second options seems
> > the only safe one.
> > 
> > OTOH, if the master does not write to a WAL archive, only the first
> > option is left to us.
> 
> Both methods are equally feasible.  Which one you choose depends on
> your situation, just as you describe in the last two sentences.

I see.

It is also interesting when there is Patroni involved, would it be a good
idea to provide Patroni nodes with a restore_command? I'm afraid it can
interfere with Patroni failover/switchover operations.

-- 
Victor Sudakov VAS4-RIPE
http://vas.tomsk.ru/
2:5005/49@fidonet