postgresql流复制 - 连续存档?

时间:2015-07-23 16:19:46

标签: postgresql streaming replication archive

我尝试设置流式复制,但出于某种原因,当我更新主服务器上的数据库时,更改不会反映在备用服务器上UNTIL我重新启动主服务器上的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

1 个答案:

答案 0 :(得分:1)

听起来你在没有流媒体的情况下使用基于档案的复制。所以它只是在WAL存档完成并且打开一个新存档时复制,这发生了:

  • 当服务器在干净关闭之前执行检查点时
  • 当WAL归档被写入活动填充并且需要新的归档时
  • archive_timeout时间

如果要进行连续复制,则需要使用流式复制。有关详细信息,请参阅the manual。这涉及在下游服务器的recovery.conf中设置连接字符串,以便它可以直接连接到上游主服务器以近乎实时地接收新写入。

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