É seguro sincronizar a replicação do PostgreSQL usando o parâmetro rsync -u?
Por exemplo, se minha replicação foi perdida por muito tempo devido a um problema de conexão (arquivo WAL já excluído, por exemplo), sempre preciso rsync todos os arquivos do meu banco de dados novamente do mestre para a réplica.
Então, estou usando algo como (ou quase) isso (escravo interno):
systemctl stop postgresql@11-slave
psql -h 10.0.0.MASTER -Atc "select pg_start_backup('clone', true);"
rsync -avz [email protected]:/var/lib/postgresql/11/main /var/lib/postgresql/11/
systemctl start postgresql@11-slave
psql -h 10.0.0.MASTER -Atc "select pg_stop_backup('clone', true);"
A solução acima está funcionando muito bem e foi testada várias vezes sem perda de dados.
Mas fico tentado a tentar restaurar a replicação usando algo mais rápido (perigoso?) como:
systemctl stop postgresql@11-slave
psql -h 10.0.0.MASTER -Atc "select pg_start_backup('clone', true);"
rsync -uavz [email protected]:/var/lib/postgresql/11/main/ /var/lib/postgresql/11/
systemctl start postgresql@11-slave
psql -h 10.0.0.MASTER -Atc "select pg_stop_backup('clone', true);"
É seguro usar o parâmetro -u no rsync (update) em vez de recopiar todos os arquivos ou devo continuar copiando todos os arquivos quando algo acontecer com minha replicação?