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_xid (string)

这个参数指定恢复将进入的事务 ID。记住虽然事务 ID 是在事务开始时顺序分配的,但是事务可能以不同的数字顺序完成。那些在指定事务之前(也可以包括该事务)提交的事务将被恢复。精确的停止点也受到recovery_target_inclusive的影响。

下列选项进一步指定恢复目标,并且影响到达目标时会发生什么:

recovery_target_inclusive (boolean)

指定我们是否仅在指定的恢复目标之后停止(true), 或者仅在恢复目标之前停止(false)。适用于 recovery_target_time或者 recovery_target_xid被指定的情况。这个设置分别控制 事务是否有准确的目标提交时间或 ID 将被包括在该恢复中。默认值为 true

recovery_target_timeline (string)

指定恢复到一个特定的时间线中。默认值是沿着基础备份建立时的当前时间线恢复。将这个参数设置为latest会恢复到该归档中能找到的最新的时间线,这在一个后备服务器中有用。除此之外,你只需要在复杂的重恢复情况下设置这个参数,在这种情况下你需要返回到一个状态,该状态本身是在一次时间点恢复之后到达的。相关讨论见Section 24.3.5

pause_at_recovery_target (boolean)

指定当到达恢复目标时是否应该暂停恢复。默认值为真。这是为了允许对该数据库执行查询来检查这个恢复目标是不是恢复最想要的点。可以使用pg_xlog_replay_resume()(见Table 9-67)继续该暂停状态,这将导致恢复运行到结束。如果这个恢复目标不是想要的停止点,则关闭该服务器,改变恢复目标设置为一个更晚的目标并且重启来继续恢复。

如果hot_standby未被启用或者没有设置恢复目标,这个设置没有效果。