Configurei um Wal Shipping (standby) no postgresql como:
No mestre, habilitei archive_mode = on
, archive_command
para um local compartilhado entre mestre e escravo e archive_timeout
.
No escravo, configurei Restore_command
para recuperar esses arquivos wal do local compartilhado e criei um standby.signal
arquivo.
Mas como monitorar via SQL se o escravo está sincronizado e aplicando esses logs?
Eu sei que na replicação de streaming podemos:
-- on master
select * from pg_stat_replication;
-- On replica
select * from pg_stat_wal_receiver;
Mas e uma replicação manual usando o wal Shipping?
Você pode executar esta consulta no modo de espera para descobrir o carimbo de data/hora da última transação reproduzida do primário:
Para ver se o servidor ainda é um servidor em espera, você pode verificar se ele está em modo de recuperação: