On this page
27.2. 恢复目标设置
默认情况下,恢复将恢复到 WAL 日志的末尾。以下参数可用于指定较早的停止点。最多可以使用recovery_target
,recovery_target_lsn
,recovery_target_name
,recovery_target_time
或recovery_target_xid
之一;如果在配置文件中指定了多个以上选项,则将使用最后一个条目。
从技术上讲,这是一个字符串参数,但是'immediate'
是当前唯一允许的值。
recovery_target_name
(string
)- 此参数指定恢复将进行到的命名还原点(使用
pg_create_restore_point()
创建)。
- 此参数指定恢复将进行到的命名还原点(使用
recovery_target_time
(timestamp
)- 此参数指定恢复将进行的时间戳。精确的停止点还受recovery_target_inclusive的影响。
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_lsn,recovery_target_time或recovery_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
相同。