Allow pg_rewind to use a standby server as the source system.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 12 Nov 2020 12:52:24 +0000 (14:52 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 12 Nov 2020 12:52:24 +0000 (14:52 +0200)
commit9c4f5192f69ed16c99e0d079f0b5faebd7bad212
tree0f0712e87b1ef10c8133bff75c23beda573909d8
parent1b2b19f7584b7c0025aa40862cd38c79d340be7d
Allow pg_rewind to use a standby server as the source system.

Using a hot standby server as the source has not been possible, because
pg_rewind creates a temporary table in the source system, to hold the
list of file ranges that need to be fetched. Refactor it to queue up the
file fetch requests in pg_rewind's memory, so that the temporary table
is no longer needed.

Also update the logic to compute 'minRecoveryPoint' correctly, when the
source is a standby server.

Reviewed-by: Kyotaro Horiguchi, Soumyadeep Chakraborty
Discussion: https://www.postgresql.org/message-id/0c5b3783-af52-3ee5-f8fa-6e794061f70d%40iki.fi
doc/src/sgml/ref/pg_rewind.sgml
src/bin/pg_rewind/libpq_source.c
src/bin/pg_rewind/pg_rewind.c
src/bin/pg_rewind/t/003_extrafiles.pl
src/bin/pg_rewind/t/007_standby_source.pl [new file with mode: 0644]