通过修改两台计算机的文件pg_hba.conf
和postgresql.conf
,我已经能够在两台本地计算机之间进行PostgreSQL复制。
然后,在第一台计算机中,有一个数据库正在自动填充,我们可以看到它实时显示。在第二台计算机中,有链接的复制数据库,但是我们无法实时查看其更新。
我的问题是数据库确实在变化,因此复制有效,但无法实时显示。
当我在psql
中使用命令时
select * from pg_stat_replication;
我在这里看到我的复制品,因此我认为发布和订阅都有效。但是在此命令显示的信息中,sync_state
的一部分显示了async
。也许我应该将其更改为sync
以使其实时运行(仍然不知道如何,我正在检查是否“更改发布”或“更改订阅” ...尚不确定)?>
答案 0 :(得分:0)
对于同步逻辑复制,如果您希望更改立即在备用数据库上可见,请将synchronous_commit
设置为remote_apply
并将预订的名称添加到synchronous_standby_names
(两个设置)在主要数据库上。)
必须在主(主)服务器上的postgresql.conf
中设置两个参数。不要忘记重新加载以激活更改。
使用同步复制,除非您至少有两个备用服务器,否则您始终会降低整个系统的可用性。