27.2. 恢复目标设置

默认情况下,恢复将恢复到 WAL 日志的末尾。以下参数可用于指定较早的停止点。最多可以使用recovery_targetrecovery_target_lsnrecovery_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。请记住,虽然在 Transaction 开始时按 Sequences 分配了 TransactionID,但 Transaction 可以以不同的数字 Sequences 完成。将要恢复的事务是在指定的事务之前(并可选地包括)进行的事务。精确的停止点还受recovery_target_inclusive的影响。
  • recovery_target_lsn ( pg_lsn )

    • 此参数指定将 continue 进行恢复的预写日志位置的 LSN。精确的停止点还受recovery_target_inclusive的影响。使用系统数据类型pg_lsn解析此参数。

以下选项进一步指定了恢复目标,并影响达到该目标时将发生的情况:

  • recovery_target_inclusive ( boolean )

    • 指定是在指定的恢复目标(true)之后还是在恢复目标(false)之前停止。当指定recovery_target_lsnrecovery_target_timerecovery_target_xid时适用。此设置控制恢复中是否分别包含具有完全目标 WAL 位置(LSN),提交时间或事务 ID 的事务。默认值为true
  • recovery_target_timeline ( string )

    • 指定恢复到特定的时间线。默认设置是按照与进行基本备份时相同的时间表进行恢复。将此设置为latest将恢复到存档中找到的最新时间线,这在备用服务器中很有用。除此之外,您仅需要在复杂的重新恢复情况下设置此参数,在这种情况下,您需要返回到在时间点恢复后已达到本身的状态。参见Section 25.3.5进行讨论。
  • recovery_target_action ( enum )

    • 指定一旦达到恢复目标,服务器应采取什么措施。默认值为pause,这意味着恢复将暂停。 promote表示恢复过程将完成,服务器将开始接受连接。最终shutdown在达到恢复目标后将停止服务器。

pause设置的预期用途是允许对数据库执行查询,以检查此恢复目标是否是最理想的恢复点。可以使用pg_wal_replay_resume()(请参见Table 9.81)恢复暂停状态,然后恢复将结束。如果此恢复目标不是所需的停止点,请关闭服务器,将恢复目标设置更改为更高的目标,然后重新启动以 continue 恢复。

shutdown设置对于在所需的确切重播点准备好实例很有用。该实例仍将能够重播更多的 WAL 记录(实际上,自下次启动该检查点以来,它必须重播 WAL 记录)。

请注意,因为当将recovery_target_action设置为shutdown时不会重命名recovery.conf,所以除非更改配置或手动删除recovery.conf文件,否则任何后续启动都将立即关闭。

如果未设置恢复目标,则此设置无效。如果未启用hot_standby,则pause的设置将与shutdown相同。