9.3 9.4 9.5 9.6 10 11 12
阿里云PostgreSQL 问题报告 纠错本页面

26.3. 备用服务器设置

standby_mode (boolean)

声明是否需要启动PostgreSQL服务器为一个standby。 如果这个参数为on,在达到归档WAL尾时,服务器不会停止恢复, 但会通过使用restore_command获取新的WAL段(和/或通过连接到主服务器, 如primary_conninfo设置声明的那样)来尝试继续恢复。

primary_conninfo (string)

声明一个连接字符串,此连接串被备服务器用来连接到主服务器。 这个字符串的格式在第 31.1.1 节中描述, 如果字符串中没有声明选项, 那么会检查相关的环境变量(参阅第 31.14 节)。 如果环境变量也没有设置,那么使用缺省的。

连接字符串应该声明主库的主机名(或地址),以及端口号(如果与备库的缺省端口不同)。 同样的,声明一个用户名对应主库上具有合适权限的角色 (参阅第 25.2.5.1 节)。 如果主库要求密码验证,那么还需要提供一个密码。 可以在primary_conninfo字符串中提供, 或者在备库上一个单独的~/.pgpass文件中(以replication作为数据库名)。 不用在primary_conninfo字符串中声明数据库名。

如果standby_mode设置为off时,则这个设置不起作用。

primary_slot_name (string)

当通过流复制连接到首选服务器以控制上游节点的资源删除时, 可选的指定一个要被使用的现有复制槽。(参阅第 25.2.6 节)。 如果没有设置primary_conninfo,则该设置没什么影响。

trigger_file (string)

声明一个触发器文件,用于在备库中结束恢复。 即使不设置此值,你还可以使用pg_ctl promote升级备库。 如果standby_modeoff,则这个设置不起作用。

recovery_min_apply_delay (integer)

缺省的,备用服务器尽快从主服务器上恢复WAL记录。有一个时间延迟的数据拷贝可能是有用的, 提供机会纠正数据丢失错误。这个参数允许你推迟固定周期的时间恢复, 如果没有指定单位,那么以毫秒计。例如,如果你设置了这个参数为5min, 那么备用服务器将至少在备用服务器上的系统时间过去主服务器报告的提交时间5分钟之后重放每个事务提交。

服务器之间的复制延迟超过这个参数的值也是有可能的,在这种情况下没有添加延迟。 请注意,时间延迟是以主服务器上的WAL时间戳和备用服务器上的当前时间计算的。 传输的延迟由于网络延迟或级联复制配置可能大大的减少实际等待时间。 如果主备服务器上的系统时间不同步,可能会导致恢复应用记录比预期的要早; 但这不是主要问题,因为这个参数的有用设置要比服务器间的典型时间偏差大得多。

延迟只发生在事务提交的WAL记录上。其他记录尽快重放, 这不是一个问题,因为MVCC可见性规则确保了它们的影响是不可见的, 直到应用了相应的提交记录。

直到备用服务器晋升或触发时,该延迟才发生。之后,该备用服务器将不做等待的结束恢复。

这个参数是打算和流复制部署一起使用的;但是,如果指定了该参数, 那么它在所有情况下都将被遵守。 同步复制不受该设置的影响,因为还没有任何设置请求同步应用事务提交。 使用这个特性,hot_standby_feedback将被延迟, 这将导致主服务器膨胀;要小心同时使用两者。

<
/BODY >