Postgresql
為什麼使用 synchronous_standby_names = ‘barman_receive_wal’ 會導致數據庫異常?
使用PostgreSQL文件中
barman
的synchronous_standby_names特性postgresql.conf
synchronous_standby_names = 'barman_receive_wal'
不能做這些操作:
- 創建使用者(掛起)
- createdb(掛起)
repmgr
如果用於複製,則無法將數據保存在主數據庫中他們的主要配置是
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'
如果
synchronous_standby_names
從此配置中刪除,它工作得很好。
我看到你已經設置了 PostgreSQL 來將 WAL 文件推送到
barman
viaarchive_command
-barman
也設置為WAL 流式傳輸?如果不是這種情況,則不會有具有該名稱的同步備用數據庫,barman_receive_wal
因此對主數據庫的任何寫入都不會成功,因為 PostgreSQL 正在等待永遠不會到達的備用送出確認。