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
signature.asc
Description: PGP signature