Use barman
o recurso synchronous_standby_namespostgresql.conf
no arquivo do PostgreSQL
synchronous_standby_names = 'barman_receive_wal'
Não é possível fazer estas operações:
- criarusuário(suspenso)
- criadob(suspenso)
- não pode salvar dados no banco de dados primário se for usado
repmgr
para replicação
A configuração principal para eles é
max_wal_senders = 10
max_replication_slots = 10
shared_preload_libraries = 'repmgr'
wal_level = 'replica'
archive_mode = on
archive_command = 'rsync -a %p barman@backup_server:/var/lib/barman/mydb/incoming/%f'
synchronous_standby_names = 'barman_receive_wal'
Se remover synchronous_standby_names
desta configuração, funciona bem.
Vejo que você configurou o PostgreSQL para enviar arquivos WAL para
barman
viaarchive_command
-barman
também está configurado para streaming WAL ? Se não for esse o caso, não haverá espera síncrona com o nomebarman_receive_wal
e, portanto, qualquer gravação no primário não será bem-sucedida, pois o PostgreSQL está aguardando uma confirmação de confirmação de espera que nunca chega.