I have a postgresql setup with master-slave configuration using repmgr. I'm struggling with taking a consistent snapshot backup (pg_start_backup
) of the slave node, this is due the fact that the slave is in recovery, hence read-only mode.
I need both the master and the slave snapshots to speedup the recovery process (if taken only on one node, in case of recovery the slave needs to be rebuilt from scratch).
Any advice of how to take a consistent snapshot of slave node? (Master is no problem).
Currently these are the approaches I'm checking:
shutting down slave node and take a cold snapshot backup.
pg_start_backup
on master and hopefully it will reflect consistent state on slave (with the WAL shipping) - any confirmation on this one?stop replication, take hot backup of slave using regular methods and then starting replication again - as far as I tested, not possible because as the replication is stopped, each node becomes independent and has its own timeline, thus require the nodes to resync in order to function again in master-slave config.
make a switch over before taking the backup - don't like this option, don't think is a correct approach to make a switch-over each time I want to take a backup.
Anything I missed? Have you implemented it using different methods?
pg_basebackup
from a replica on the latest version at least.