standby_mode (boolean) #指定是否将 PostgreSQL 服务器作为备库启动。如果此参数为 on,服务器到达已归档 WAL 的末尾时不会停止恢复,而会继续尝试使用 restore_command 获取新的 WAL 段,和/或按照 primary_conninfo 设置连接主库,以继续恢复。
primary_conninfo (string) #指定备库连接主库所用的连接字符串,格式见 Section 33.1.1。如果某个选项未在字符串中指定,就会检查相应的环境变量(参见 Section 33.14)。如果环境变量也未设置,则使用默认值。
连接字符串应指定主库的主机名(或地址);如果端口号与备库的默认端口不同,也应指定端口号。还应指定一个用户名,对应主库上具有适当权限的角色(参见 Section 26.2.5.1)。如果主库要求密码认证,还需要提供密码。密码可以放在 primary_conninfo 字符串中,也可以放在备库上单独的 ~/.pgpass 文件中(使用 replication 作为数据库名)。不要在 primary_conninfo 字符串中指定数据库名。
如果 standby_mode 为 off,此设置不起作用。
primary_slot_name (string) #可选地指定一个已存在的复制槽,在通过流复制连接主库时使用,以控制上游节点的资源移除(参见 Section 26.2.6)。如果未设置 primary_conninfo,此设置不起作用。
trigger_file (string) #指定一个触发文件,其出现会使备库结束恢复。即使未设置此值,也仍可以使用 pg_ctl promote 提升备库。如果 standby_mode 为 off,此设置不起作用。
recovery_min_apply_delay (integer) #默认情况下,备库会尽快恢复来自主库的 WAL 记录。保留一份有时间延迟的数据副本可能很有用,可以为纠正导致数据丢失的错误提供机会。此参数允许将恢复延迟固定的一段时间,未指定单位时以毫秒计。例如,设为 5min 时,只有备库系统时间比主库报告的提交时间至少晚五分钟,备库才会重放该事务的提交。
服务器之间的复制延迟可能超过此参数的值,此时不会增加额外延迟。注意,延迟是根据主库写入的 WAL 时间戳与备库当前时间之间的差值计算的。网络滞后或级联复制配置造成的传输延迟,可能显著减少实际等待时间。如果主库和备库的系统时钟不同步,可能导致恢复比预期更早地应用记录;但这不是主要问题,因为此参数的实用设置值远大于服务器之间通常的时间偏差。
延迟只作用于事务提交的 WAL 记录。其他记录会尽快重放,这不会造成问题,因为 MVCC 可见性规则确保在相应提交记录应用之前,它们的影响不可见。
正在恢复的数据库达到一致状态后,延迟就会生效,直到备库被提升或触发。此后,备库将不再继续等待,而是结束恢复。
此参数面向流复制部署设计;但只要指定了它,在所有情况下都会生效。使用此功能会延迟 hot_standby_feedback,可能导致主库膨胀;同时使用二者时应谨慎。
当 synchronous_commit 设为 remote_apply 时,同步复制会受此设置影响;每次 COMMIT 都必须等待提交被应用。