我试图设置流复制,但由于某种原因,当我更新主服务器上的数据库时,在主服务器上重新启动postgresql服务之前,这些更改不会反映在备用服务器上。(我在主服务器中看到了新的xlog文件,但这些文件没有同步到备用服务器)。当我在主服务器上重新启动服务时,我终于看到新文件被添加到我的共享wal_archive文件夹中。
使其自动同步的唯一方法是设置archive_timeout。
师父:
wal_level = 'hot_standby' # minimal, archive, hot_standby, or logical
archive_mode = on # allows archiving to be done
# (change requires restart)
archive_command = 'copy "%p" "\\\\VBOXSVR\\wal_archive\\%f"'
max_wal_senders = 3 # max number of walsender processes
# (change requires restart)
wal_keep_segments = 10 # in logfile segments, 16MB each; 0 disablespb_hba.conf
host replication postgres slaveip/32 trust发布于 2015-07-24 01:47:22
听起来,您使用的是基于存档的复制,而不是流。因此,只有当WAL存档完成并打开一个新的存档时,它才会进行复制,这是这样的:
archive_timeout时间如果要连续复制,则需要使用流复制。详情请参见手册。这包括在下游服务器的recovery.conf中设置一个连接字符串,这样它就可以直接连接到上游主服务器,从而几乎实时地接收新的写操作。
您仍然应该启用基于存档的复制,因为这允许副本在断开连接一段时间后恢复。它对实时恢复也很有用。
https://stackoverflow.com/questions/31592909
复制相似问题