9.1第二十六章

== 第26章. 恢复配置 ==
目录
 26.1．存档恢复设置
 26.2．恢复目标设定
 26.3．备用服务器设置
本章介绍的设置，可在recovery.conf文件中设置。 它们只适用于持续恢复。 它们必须为任何随后的你希望需要执行的恢复重新设置。一旦恢复开始，它们不能被更改。
在设置recovery.conf中指定的格式 name='value' 。 每一个参数在每一行指定。哈希标记（＃）指定接下来的行为注释。为了在参数值中嵌入一个单引号，写两个引号（’’）。
在安装中的share/ 目录提供了一个示例文件，share/ recovery.conf.sample 。
== 26.1. 存档恢复设置 ==
restore_command （ string ）
Shell命令执行来检索WAL文件系列的归档段。此参数是归档恢复必需的，但流的复制是可选的。任何在string中的%f会被从归档检索的文件的名称替换，任何%p被服务器上的复制的目标路径名称替换。（路径名称是相对于当前工作目录，即簇的数据目录。）任何 %r被一个包含最后有效的重启点的文件的名称替换。 这是在之前就必须保存的文件，以保证恢复能被重新启动，所以这个信息可以用来截断存档到只是最低要求，以支持从目前的恢复来重新启动。 %r 通常只用于热备份配置（见 25.2节 ）。 写入 %% 实际中嵌入%字符。
重要的是该命令只有当它成功是才返回一个零退出状态。该命令会要求提供档案中​​不存在的文件名 ，但这样要求是，它必须返回非零。 例子：
 restore_command =' cp / mnt /server/archivedir /%f “%p” ' 
 restore_command ='cp “C:\\server\ \ archivedir \ \％r” “%p” ' ＃Windows
archive_cleanup_command （ string ）
这个可选参数指定一个shell命令，将会在每个重启点执行。 archive_cleanup_command 的目的是提供 一个清理备用服务器不再需要的旧存档WAL文件的方法。任何 %r被包含最新有效的重启点的文件的名称替换。这是最先的文件，必须保持允许恢复被重新启动，因此所有早于 %r的文件可以安全地删除。 这些信息可以用来截断存档到支持恢复重新启动的最低要求。F.25章模块通常用于 archive_cleanup_command 单备份的配置，例如：
 archive_cleanup_command =’ pg_archivecleanup / mnt /server/ archivedir %r ’ 
但是请注意，如果有多个备用服务器都从同一个诡诞目录来恢复，您需要确保您不要删除WAL的文件，直到他们不再被任何服务器需要。archive_cleanup_command 通常用在热身备用配置（见 25.2节 ）。 写入%%在命令中嵌入%字符。
如果命令返回一个非零退出状态，则WARINING日志消息将被写入。
recovery_end_command （string）
此参数指定一个shell命令，只有在恢复结束时执行。 此参数是可选的。recovery_end_command的目的是提供一个机制，清理接下来的复制或恢复。 任何%r被包含最后一个有效的重启点的文件的名称替换，像 archive_cleanup_command 。
如果命令返回一个非零退出状态，则WARNING日志消息将被写入，而且数据库将继续以任何方式启动。 一个例外是，如果该命令是由一个信号终止，该数据库将不进行启动。
== 26.2. 恢复目标设置 ==
recovery_target_name （string ）
此参数用pg_create_restore_point( )创建的命名的恢复点，指定恢复将继续进行。recovery_target_name ， recovery_target_time 或 recovery_target_xid 其中之一都可以被指定。 默认是恢复到日志的WAL日志的末尾。
recovery_target_time （timestamp ）
此参数指定时间戳决定哪个恢复将会执行。 recovery_target_time ， recovery_target_name 或 recovery_target_xid 其中之一可以指定。 默认是恢复到WAL日志的的末尾。 精确的停止点也受到 recovery_target_inclusive 影响。
recovery_target_xid （ string ）
此参数指定的事务ID决定哪个恢复将会执行。请记住，虽然在事务id在事务开始时按顺序分配，交易依然可以在不同的数字顺下序完成。将被恢复的事务是在指定一个之前提交的（也可以有选择的包含）。 recovery_target_xid ，recovery_target_name 或 recovery_target_time 其中之一可以指定。 默认是恢复到WAL日志的末尾。 精确的停止点也受到 recovery_target_inclusive 影响。
recovery_target_inclusive （ boolean ）
指定是否停止，就在指定恢复目标（true）之后或在恢复目标（false）之后。既适用于recovery_target_time 和 recovery_target_xid ，无论哪一个在恢复时被指定。这表明事务是否有准确的目标提交时或ID，分别将包括在恢复。 默认为true。
recovery_target_timeline （ string ）
指定恢复到一个特定的时间表。默认为恢复沿着与基准备份同一时间表进行恢复。设定这个到 最新的恢复到在备用服务器中有用的归档中找到的最新的时间表 。除此之外，你只需要在复杂的重新恢复的情况下设置此参数后，当在它自己在一个及时恢复之后被达成，你需要返回给一个状态 。参见 第24.3.4 来讨​​论。
pause_at_recovery_target （ boolean ）
指定当目标就达到了恢复是否暂停。 默认值是true，如果恢复目标设定了。 这是为了让查询被执行 使数据库检查如果这个恢复是最是最可取的恢复点。暂停的状态可以用 能是恢复终止的pg_xlog_replay_resume（）（ 见 表9-58 ）来终止。如果这种恢复的目标是不想要的停止点，然后关闭服务器，更改恢复目标设定到一个税后的目标，并重启来继续恢复。
== 26.3. 备用服务器设置 ==
standby_mode （ boolean ）
指定是否要作为备用来启动的PostgreSQL 服务器。 如果此参数为on，在归档WAL结束时，服务器将不会停止恢复，但靠提取到新的使用restore_command 的WAL段，或者是连接到用primary_conninfo 设置指定的主服务WAL段，将试着继续恢复 。
primary_conninfo （ string）
为备用服务器指定一个连接字符串来连接主服务器。 这个字符串在libpq PQconnectdb 功能接受的格式中，在 31.1节中有描述 。如果任何选项在此字符串未指定，那么相应的环境变量（见第31.13 ）被选中。 如果环境变量也没有设置，那么默认就会被使用。
连接字符串应指定主服务器的主机名（或地址），如果它和备用服务器的默认的不是一样的，则还要指定端口号。同时，指定一个和主服务器（ 第25.2.5.1 ）上具有SUPERUSER 和LOGIN 权限的角色名称一致的用户名。如果主服务器要求密码验证，则密码也需要提供。它可以在primary_conninfo 字符串中提供，或在备用服务器上（ 使用replication作为数据库名）的一个单独的 〜/.pgpass文件中。不要 primary_conninfo 字符串指定数据库名。
如果 standby_mode 是 off ,该设置没有任何作用。
trigger_file （string）
指定一个触发器文件，其存在触发备用恢复完在。 即使这个值没有设置，您仍然可以使用pg_ctl promote 提升备用服务器。如果 standby_mode 是off,则该设置没有任何影响。
Category:Chinese