Postgresql流复制——持续归档



我试图设置流复制,但由于某种原因,当我更新主服务器上的数据库时,更改没有反映在备用服务器上,直到我重新启动主服务器上的postgresql服务。(我在主服务器中看到新的xlog文件,但这些文件没有同步到备用服务器)。当我在master上重新启动服务时,我终于看到新文件添加到我的共享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 disables

pb_hba.conf

host    replication  postgres    slaveip/32      trust

听起来您使用的是基于归档的复制,而不是流。因此,它只在完成WAL归档并打开新归档时进行复制,这种情况会发生:

  • 当服务器在干净关机前执行检查点时
  • 当一个WAL归档被写活动填充,并且需要一个新的时
  • archive_timeout时刻

如果你想要连续复制,你需要使用流复制。详细信息请参见手册。这包括在下游服务器的recovery.conf中设置一个连接字符串,以便它可以直接连接到上游主服务器,以近乎实时的方式接收新的写操作。

您仍然应该启用基于存档的复制,因为这允许副本在断开连接一段时间后恢复。对于时间点恢复也很有用。

相关内容

  • 没有找到相关文章

最新更新