Greetings,

* Martín Fernández (fmarti...@gmail.com) wrote:
> I've wrote a couple of questions around pg_upgrade and updating standbys 
> using rsync last week. We were able to successfully upgrade half of our 
> cluster (the other half was kept for failover) from pg92 with postgis 1.5.8 
> to pg10 with postgis 2.4. It was a really interesting challenge because of 
> postgis binary incompatibility for geometry data types.
> 
> The rsync call that we used looked exactly like this (taken from pg_upgrade 
> man page basically):
> 
> `rsync --verbose --verbose --progress --archive --delete --hard-links 
> --size-only  --no-inc-recursive /var/lib/postgres/9.2 /var/lib/postgres/10 
> $REPLICA_IP:/var/lib/postgres`
> 
> We are now in the journey of upgrading the other half of the cluster since we 
> have concluded that the upgrade was successful. 
> 
> We are planning on using the same rsync call to upgrade the rest of the 
> standbys (in combination with pg_start_backup/pg_stop_backup low level api). 
> My only concern is that I'm not 100% sure if the `--size-only` flag will be 
> enough to guarantee that files are the same. On the initial set of standbys 
> that we upgraded this shouldn't generate an issue since the standbys were at 
> the same last checkpoint than the master  and we did the rsync call before 
> starting the primary (after running pg_upgrade).

No, you can't use --size-only to rebuild those replicas while the
primary is online, even if you're using pg_start/stop_backup, you should
really enable the rsync checksums-based check to make sure that you're
copying all of the files that you need to from the primary to the
replica during the pg_start/stop_backup, and then you need to make sure
and have an appropriate backup_label installed on all the replicas to
get them to replay from the pg_start_backup checkpoint and to replay
through to the end of the pg_stop_backup.  You would have a
recovery.conf file already but you might need to make sure it has a
restore_command which can pull back WAL that might have already been
archived by the primary.

Note that this method of rebuilding the replicas will likely be
time-consuming but unfortunately it's necessary.  There are alternatives
to using rsync to perform this if you need to get it done faster.

> Is there any potential issues that could show up if we do it with --size-only 
> ? Should we use the default rsync mechanism that would check for size and 
> timestamps ?

I wouldn't trust just size/timestamp in this case, you really should use
checksums.

> Hoping someone has some better experience than me on upgrading standbys using 
> rsync.

The rsync-based pg_upgrade mechanism for replicas *only* works when it's
done after all of the systems have been shut down and you've verified
that all the nodes reached the same shutdown checkpoint, it is *not*
appropriate for online rebuilding of replicas.

Thanks!

Stephen

Attachment: signature.asc
Description: PGP signature

Reply via email to