pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
默认情况下,恢复会一直进行到 WAL 日志末尾。可以使用以下参数指定更早的停止点。recovery_target、recovery_target_name、recovery_target_time 或 recovery_target_xid 中最多只能使用一个;如果在配置文件中指定了多个,则使用最后一个条目。
recovery_target = 'immediate' #这个参数指定恢复应该在达到一个一致状态后尽快结束,即尽早结束。在从一个在线备份中恢复时,这意味着备份结束的那个点。
在技术上,这是一个字符串参数,但是'immediate'是目前唯一允许的值。
recovery_target_name (string) #这个参数指定(pg_create_restore_point()所创建)的已命名的恢复点,恢复将进行到该恢复点。
recovery_target_time (timestamp) #此参数指定恢复要进行到的时间戳。精确的停止点还受 recovery_target_inclusive 影响。
recovery_target_xid (string) #此参数指定恢复要进行到的事务 ID。请注意,虽然事务 ID 在事务开始时按顺序分配,但事务完成的顺序可能与 ID 的数值顺序不同。恢复的事务是那些在指定事务之前提交的事务,并可选择包括指定事务本身。精确的停止点还受 recovery_target_inclusive 影响。
下列选项进一步指定恢复目标,并且影响到达目标时会发生什么:
recovery_target_inclusive (boolean) #指定是在所设恢复目标之后立即停止(true),还是在其之前立即停止(false)。在指定 recovery_target_time 或 recovery_target_xid 时适用。此设置控制恢复是否包含提交时间或事务 ID 分别恰好等于目标值的事务。默认值为 true。
recovery_target_timeline (string) #指定恢复到某条特定时间线。默认沿着制作基础备份时的当前时间线恢复。设为 latest 时,会恢复到归档中找到的最新时间线,这对备库很有用。除此之外,只有在复杂的再次恢复场景中才需要设置此参数:需要返回的状态本身就是一次时间点恢复之后达到的状态。相关讨论参见 第 25.3.5 节。
recovery_target_action (enum) #指定在达到恢复目标时服务器应该立刻采取的动作。默认动作是pause,这表示恢复将会被暂停。 promote表示恢复处理将会结束并且服务器将开始接受连接。 最后,shutdown将在达到恢复目标之后停止服务器。
使用pause设置的目的是允许对数据库执行查询,以检查这个恢复目标是否为最合适的恢复位置。 暂停的状态可以使用pg_xlog_replay_resume()(见表 9.80)继续,这会让恢复终结。 如果这个恢复目标不是想要的停止点,那么关闭服务器,将恢复目标设置改为一个稍后的目标并且重启以继续恢复。
要让实例在想要的重放点那里准备好,shutdown设置可以派上用场。 该实例将仍能重放更多 WAL 记录(并且事实上,下次启动时必须重新回放自上一个检查点以来的 WAL 记录)。
注意,将 recovery_target_action 设为 shutdown 时,recovery.conf 不会被重命名,因此除非更改配置或手动删除 recovery.conf 文件,否则之后每次启动都会立即关闭。
如果未设置恢复目标,此设置不起作用。如果未启用 hot_standby,则 pause 的行为与 shutdown 相同。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。