是否必须在recovery.conf中设置“restore_command”和“archive_cleanup_command”?

时间:2012-09-03 12:46:03

标签: database postgresql

我正在 PostgreSQL (不是基于文件的日志传送)中设置Streaming replication(9.1版)备用服务器。

standby_mode设置为'on'并将primary_conninfo设置为正确的值,设置restore_commandarchive_cleanup_command是重要的还是必须的?还有主服务器中的archive_command吗?

尽管已经阅读the documentation,但我不太确定答案。

感谢。

编辑:

让我回答我自己的问题。在slave.conf文件中,该文件必须存在于slave中,restore_command的注释表示:

# This parameter is *required* for an archive recovery, but optional
# for streaming replication.

总之,如果您的从属设备没有从主设备回退太多,则没有必要配置文件日志传送功能(存档,恢复,清理等)。

1 个答案:

答案 0 :(得分:2)

您需要在主设备上设置archive_command并在从设备上设置匹配的restore_command

流式复制系统的工作原理是将wal记录ID提供给从属设备,然后使用restore_command获取它。因此,您必须在主服务器上使用某种archive_command写入可通过从服务器上的restore_command访问的存储设备。

archive_cleanup_command是可选的,但强烈建议使用,因为wal存档会占用大量磁盘空间,并且可以非常快速地填满磁盘。