postgres 基于基础备份的恢复操作 之恢复文件详解recover.conf(一)

归档恢复设置

    restore_command (string) :用于获取 WAL 文件系列的一个已归档段的本地 shell 命令。这个参数是归档恢复所必需的,但是对于流复制是可选的。

restore_command = 'cp /mnt/server/archivedir/%f "%p"'
restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows

    archive_cleanup_command (string) :清除不再被备份服务器需要的旧的已归档 WAL 文件。%r会被替换为包含最后一个可用重启点的文件的名称。因此比%r更早的所有文件可以被安全地移除。

archive_cleanup_command = 'pg_archivecleanup /mnt/server/archivedir %r'

    recovery_end_command (string) :归档恢复结束后执行的命令。目的是为复制或恢复之后的清除提供一种机制。与archive_cleanup_command中相似,任何%r会被替换为包含最后一个可用重启点的文件的名称。

恢复目标设置

默认情况下,恢复将会一直恢复到 WAL 日志的末尾。在recovery_target、recovery_target_lsn、recovery_target_name、recovery_target_time和recovery_target_xid中,最多只能使用一个,如果在配置文件中使用了多个,将使用最后一个。
    recovery_target = ‘immediate’ :这个参数指定恢复应该在达到一个一致状态后尽快结束,即尽早结束。在从一个在线备份中恢复时,这意味着备份结束的那个点。
    recovery_target_name (string) :指定(pg_create_restore_point()所创建)的已命名的恢复点,进行恢复。
    recovery_target_time (timestamp) :这个参数指定按时间戳恢复。
    recovery_target_xid (string) :这个参数指定按事务 ID进行恢复。
    recovery_target_lsn (pg_lsn) :这个参数指定按继续进行的预写日志位置的LSN进行恢复。
    recovery_target_inclusive (boolean):指定我们是否仅在指定的恢复目标之后停止(true), 或者仅在恢复目标之前停止(false)。 适用于recovery_target_lsn、recovery_target_time 或者recovery_target_xid被指定的情况。 这个设置分别控制事务是否有准确的目标WAL位置(LAN)、提交时间或事务ID将被包括在该恢复中。 默认值为true。
    recovery_target_timeline (string) :指定恢复到一个特定的时间线中。默认值是沿着基础备份建立时的当前时间线恢复。将这个参数设置为latest会恢复到该归档中能找到的最新的时间线。
    recovery_target_action (enum) :指定在达到恢复目标时服务器应该立刻采取的动作,包括pause(暂停)、promote(接受连接)、shutdown(停止服务器),其中pause为默认动作

备库服务器设置

    standby_mode (boolean) :为on表示作为一个备库,否则不为备库。如果这个参数为on,当到达已归档 WAL 末尾时该服务器将不会停止恢复,但是将通过使用restore_command获得新的 WAL 段以及/或者通过使用primary_conninfo设置连接到主服务器来尝试继续恢复。
    primary_conninfo (string) :指定后备服务器用来连接主服务器的连接字符串。
    primary_slot_name (string) :有选择地指定通过流复制连接到主服务器时使用一个现有的复制槽来控制上游节点上的资源移除(见第 26.2.6 节)。如果没有设置primary_conninfo则这个设置无效。
    trigger_file (string) :指定一个触发器文件,如果该文件存在,则会结束备机中的恢复,即升级备库为一个独立的主库。即使这个值没有被设置,你也能够使用pg_ctl promote来提升后备机。如果standby_mode为off,这个设置没有效果。
    recovery_min_apply_delay (integer) :允许你将恢复延迟一段固定的时间,如果没有指定单位则以毫秒为单位。例如,如果你设置这个参数为5min,对于一个事务提交,只有当后备机上的系统时钟超过主服务器报告的提交时间至少 5分钟时,后备机才会重放该事务。

警告:
当synchronous_commit被设置为remote_apply时,同步复制会受到这个设置的影响,每一个COMMIT都需要等待被应用。

 

来自: https://blog.csdn.net/a964921988/article/details/84959961

posted on 2020-06-08 14:55  kingle-l  阅读(718)  评论(0编辑  收藏  举报

levels of contents