选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.5 已于 2021 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页

26.2. 恢复目标设置 #

默认情况下,恢复会一直进行到 WAL 日志末尾。可以使用以下参数指定更早的停止点。recovery_targetrecovery_target_namerecovery_target_timerecovery_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_timerecovery_target_xid 时适用。此设置控制恢复是否包含提交时间或事务 ID 分别恰好等于目标值的事务。默认值为 true

recovery_target_timeline (string) #

指定恢复到某条特定时间线。默认沿着制作基础备份时的当前时间线恢复。设为 latest 时,会恢复到归档中找到的最新时间线,这对备库很有用。除此之外,只有在复杂的再次恢复场景中才需要设置此参数:需要返回的状态本身就是一次时间点恢复之后达到的状态。相关讨论参见 第 24.3.5 节

recovery_target_action (enum) #

指定在达到恢复目标时服务器应该立刻采取的动作。默认动作是pause,这表示恢复将会被暂停。 promote表示恢复处理将会结束并且服务器将开始接受连接。 最后,shutdown将在达到恢复目标之后停止服务器。

使用pause设置的目的是允许对数据库执行查询,以检查这个恢复目标是否为最合适的恢复位置。 暂停的状态可以使用pg_xlog_replay_resume()(见表 9.70)继续,这会让恢复终结。 如果这个恢复目标不是想要的停止点,那么关闭服务器,将恢复目标设置改为一个稍后的目标并且重启以继续恢复。

要让实例在想要的重放点那里准备好,shutdown设置可以派上用场。 该实例将仍能重放更多 WAL 记录(并且事实上,下次启动时必须重新回放自上一个检查点以来的 WAL 记录)。

注意,将 recovery_target_action 设为 shutdown 时,recovery.conf 不会被重命名,因此除非更改配置或手动删除 recovery.conf 文件,否则之后每次启动都会立即关闭。

如果未设置恢复目标,此设置不起作用。如果未启用 hot_standby,则 pause 的行为与 shutdown 相同。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。