这些设置空值接收复制数据的一个后备服务器的行为。它们的值与主服务器无关。
hot_standby (boolean)
指定在恢复期间,你是否能够连接并运行查询。默认值是on。这个参数只能在服务器启动时设置。它只在归档恢复期间或后备机模式下才有效。
max_standby_archive_delay (integer)
当热后备机处于活动状态时,这个参数决定取消那些与即将应用的WAL 项冲突的后备机查询之前,后备服务器应该等待多久。当 WAL 数据被从 WAL 归档(并且因此不是当前的 WAL)时,max_standby_archive_delay可以应用。默认值是 30 秒。如果没有指定,衡量单位是毫秒。值 -1 允许后备机一直等到冲突查询结束。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。注意,max_standby_archive_delay与取消之前一个查询能够运行的最长时间不同;它表示应用任何一个 WAL 段数据能够被允许的最长总时间。因此,如果一个查询早于 WAL 段导致了显著的延迟,后续冲突查询将只有更少的时间。
max_standby_streaming_delay (integer)
当热后备机处于活动状态时,这个参数决定取消那些与即将应用的WAL 项冲突的后备机查询之前,后备服务器应该等待多久。当 WAL 数据正在通过流复制被接收时,max_standby_streaming_delay可以应用。默认值是 30 秒。如果没有指定,衡量单位是毫秒。值 -1 允许后备机一直等到冲突查询结束。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。注意,max_standby_streaming_delay与取消之前一个查询能够运行的最长时间不同;它表示在从主服务器接收到 WAL 数据并立刻应用它能够被允许的最长总时间。因此,如果一个查询导致了显著的延迟,后续冲突查询将只有更少的时间,直到后备服务器再次赶上进度。
wal_receiver_status_interval (integer)
指定在后备机上的WAL 接收者进程向主服务器或上游后备机发送有关复制进度的信息的最小频度,它可以使用pg_stat_replication视图看到。后备机将报告它已经写入的上一个预写式日志位置、它已经刷到磁盘的上一个位置以及它已经应用的最后一个位置。这个参数的值是报告之间的最大间隔,以秒计。每次写入或刷出位置改变时会发送状态更新,或者至少按这个参数的指定的频度发送。因此,应用位置可能比真实位置略微滞后。将这个参数设置为零将完全禁用状态更新。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。默认值是 10 秒。
hot_standby_feedback (boolean)
指定一个热后备机是否将会向主服务器或上游后备机发送有关于后备机上当前正被执行的查询的反馈。这个参数可以被用来排除由于记录清除导致的查询取消,但是可能导致在主服务器上用于某些负载的数据库膨胀。反馈消息的发送频度不会高于每个wal_receiver_status_interval周期发送一次。默认值是off。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。如果使用级联复制,反馈将被向上游传递直到它最后到达主服务器。后备机在接收到反馈之后除了传递给上游不会做任何其他操作。这个设置不会覆盖主服务器上的old_snapshot_threshold的行为,后备服务器上一个超过了主服务器年龄阈值的快照可能会变得不可用,导致后备服务器上事务的取消。这是因为old_snapshot_threshold 是为了对死亡行能够存在的时间给出一个绝对限制,不然就会因为一个后备服务器的配置而被违背。
wal_receiver_timeout (integer)
中止处于非活动状态超过指定毫秒数的复制链接。这对于正在接收的后备服务器检测主服务器崩溃或网络断开有用。值零会禁用超时机制。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。默认值是 60 秒。
wal_retrieve_retry_interval (integer)
指定等待服务器应等待多长时间时,当重试检索WAL数据之前来自任何源 (流复制,本地pg_wal或者WAL归档)的WAL数据不可用。 此参数只能在postgresql.conf文件或服务器命令行设置。缺省值是5秒。如果没有指定,单位是毫秒。此参数有助于配置恢复节点控制等待新的WAL数据可用的时间数。例如,在归档恢复中,通过减少此参数的值检测一个新的WAL日志文件中使得恢复更加敏感,这种做法是有可能的。在一个低WAL活动系统中,增加它减少了必要的访问WAL归档的需求量,一些有用例子在云环境中访问基础设施的时间量要考虑在内。