更新时间:2026-10-21 GMT+08:00
分享

备服务器

hot_standby

参数说明:设置是否允许备机在恢复到minrecovery点后接受连接和查询。

  • 如果此参数设置为on,wal_level级别必须设置为hot_standby或以上,否则将导致数据库无法启动。
  • 在分布式环境中,因为会对双机其他一些功能产生影响,hot_standby参数不能设置成off。
  • 如果hot_standby参数曾经被关闭,且wal_level参数曾被设置低于hot_standby等级,那么,再次打开hot_standby参数之前,为了确保主备环境下备机上待回放的日志都可以支持备机查询功能,需要进行如下操作:
    1. 将主、备的wal_level参数调整到hot_standby等级或以上,并重启实例生效。
    2. 在主机上执行checkpoint操作,并通过查询pg_stat_get_wal_senders()系统函数,确认各个备机的receiver_replay_location追上主机当前的sender_flush_location,保证wal_level的调整同步到备机并生效,且备机不需要再回放之前低等级的日志。
    3. 将主、备的hot_standby参数打开(设为on),并重启实例生效。
  • 备机读开启后,因备机回放与查询冲突,可能会出现查询被取消的报错,报错信息有:
    • ERROR: canceling statement due to conflict with recovery.
    • ERROR: terminating connection due to conflict with recovery.
  • 在串行和并行回放备机读下,主机在进行在线重建索引时,备机读可能会报错,备机读请稍后重试。报错信息包含:
    • ERROR: could not open relation with OID xxx during recovery delete object, please try again later.
    • ERROR: Catalog is missing xxx attribute(s) for relid xxx.
    • ERROR: cache lookup failed for index xxx, refilenode:xxx, name:"xxx".
    • ERROR: could not find pg_class entry for xxx.
    • ERROR: could not open block during recovery delete object, please try again later.
  • 在极致RTO备机读的情况下,内存配置较小的虚拟机可能出现内存不足的报错,可通过开启GUC参数exrto_standby_read_opt(默认开启)有效降低内存和I/O开销,解决此问题。
  • 备机不支持自治事务功能。
  • 在并行回放和极致RTO备机读场景下,Astore类型的表不支持生成IndexOnlyScan执行计划。
  • 在极致RTO备机读场景下,若事务需使用读已提交(READ COMMITTED)的隔离级别,exrto_transaction_isolation_force_rr参数必须设置为off。当exrto_transaction_isolation_force_rr参数设置为on时,极致RTO备机读场景仅支持可重复读(REPEATABLE READ)的事务隔离级别,在可重复读隔离级别下使用备机读时需注意以下两项。若这两项均不满足,会话建立连接后无法读到新回放的数据。
    • 使用驱动连接数据库的场景下,需打开autocommit功能。
    • 在需关闭autocommit的场景下,如果执行长事务过程中需要读到最新回放的数据,需手动commit提交本次查询事务,然后再执行新的查询。
  • 典型场景下的备机读性能:使用sysbench进行测试,主机执行100并发的update类型业务,主备机同时执行200并发的读类型业务,在I/O和CPU不受限的条件下,串行回放备机读的性能不低于主机读业务性能的80%,极致RTO备机读的性能和串行回放备机读的性能相比劣化不超过10%。

参数类型:布尔型

参数单位:无

取值范围:

  • on:表示允许备机在恢复到minrecovery点后接受连接和查询。
  • off:表示不允许备机在恢复到minrecovery点后接受连接和查询。

默认值:on

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:备机读功能开启后,即使没有响应业务,也会有一定的资源消耗,包括CPU、内存、磁盘空间、I/O占用。如果没有备机读业务,建议关闭此参数。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

max_standby_archive_delay

参数说明:当开启双机热备模式时,备机读场景下进行查询就会产生冲突,此参数就是设置备机取消查询之前所等待的时间。当前版本设置暂不生效,统一由参数max_standby_streaming_delay控制。

参数类型:整型

参数单位:ms(毫秒)

取值范围:-1 ~ 2147483647。-1表示允许备机一直等待冲突的查询完成。

默认值:3000(即3s)

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

max_standby_streaming_delay

参数说明:当开启双机热备模式时,如果备机正通过流复制接收WAL日志数据,这时进行查询就会产生冲突,这个参数就是设置备机取消查询之前所等待的时间。当参数值较大,或业务压力大时,概率出现查询与回放冲突的报错。

参数类型:整型

参数单位:ms(毫秒)

取值范围:-1 ~ 2147483647

-1表示允许备机一直等待冲突的查询完成。在开启串行或并行回放的场景下,当检测到查询线程与回放线程已处于死锁状态时,仍会通过取消查询来避免阻塞回放。

0表示备机在出现回放与查询的冲突时,立即取消查询,不会等待。

默认值:3000(即3s)

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:需根据业务需求谨慎调整,建议设置为默认值。设置值越大,备机的查询业务优先级越高,但会影响备机回放;设置值越小,长查询越容易被取消,但回放的优先级越高。

设置不当的风险与影响:设置过大时,如果出现与回放冲突的长查询,有可能导致回放长时间被阻塞,影响此备机的RTO和RPO指标。

wal_receiver_status_interval

参数说明:WAL日志接收线程的状态通知给主机的最大时间间隔。

参数类型:整型

参数单位:s(秒)

取值范围:0 ~ 2147483

默认值:5

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:当该参数设置为0时,表示关闭备机向主机反馈日志接收位置等信息,可能会导致主机事务提交阻塞、switchover操作失败等异常现象。正常业务场景,不建议将该参数设置为0。

hot_standby_feedback

参数说明:将备机上执行查询的最小事务号反馈给主机,可以避免查询冲突。

参数类型:布尔型

参数单位:无

取值范围:

  • on:表示允许将备机上执行查询的最小事务号反馈给主机。
  • off:表示不允许将备机上执行查询的最小事务号反馈给主机。

默认值:off

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:当该参数为on时,主机的旧版本数据的清理会受限于备机正在读的事务,即主机只允许清理小于备机反馈的事务号所作的更改。因此若该参数开启时,会影响主机的性能。若备机回放与查询冲突,会出现查询报错,因此建议适当调大max_standby_streaming_delay。

wal_receiver_timeout

参数说明:设置从主机接收数据的最大等待时间。

参数类型:整型

参数单位:ms(毫秒)

取值范围:0 ~ 2147483647‬

默认值:6000(即6s)

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:设置过小,会导致网络波动时,walreceiver线程频繁断开。

wal_receiver_connect_timeout

参数说明:设置连接主机的最大等待超时时间。

参数类型:整型

参数单位:s(秒)

取值范围:0 ~ 2147483

默认值:2

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

wal_receiver_connect_retries

参数说明:设置连接主机的最大尝试次数。

参数类型:整型

参数单位:无

取值范围:1 ~ 2147483647‬

默认值:1

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

wal_receiver_buffer_size

参数说明:备机接收Xlog存放到内存缓冲区的大小。

参数类型:整型

参数单位:kB

取值范围:4096 ~ 1047552

默认值:65536(即64MB)

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

primary_slotname

参数说明:设置备机对应主机的slot name,用于主备校验。

参数类型:字符串

参数单位:无

取值范围:字符串

默认值:""

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:不建议进行修改。

设置不当的风险与影响:错误设置可能会导致备机无法连接上主机,集群状态异常。

max_standby_base_page_size

参数说明:开启极致RTO功能后,备机上允许base page类型文件的最大存储空间。

参数类型:整型

参数单位:kB

取值范围:1048576 ~ 562949953421311

默认值:268435456‬(即256GB)

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:根据实际物理磁盘大小,对此参数进行设置。

设置不当的风险与影响:设置过小,会导致备机读报错概率增加。

max_standby_lsn_info_size

参数说明:开启极致RTO功能后,备机上允许lsn info类型文件的最大存储空间。

参数类型:整型

参数单位:kB

取值范围:1048576 ~ 562949953421311

默认值:268435456‬(即256GB)

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:根据实际物理磁盘大小,对此参数进行设置。

设置不当的风险与影响:设置过小,会导致备机读报错概率增加。

max_keep_csn_info_size

参数说明:开启极致RTO功能后,备机上每个DN允许的csn info链表的最大存储空间。

参数类型:整型

参数单位:kB

取值范围:16384 ~ 131072

默认值:16384‬(即16MB)

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

base_page_saved_interval

参数说明:开启极致RTO功能后,备机上生成base page的间隔次数。对同一个页面来说,每回放该参数值的次数,生成一次base page。

参数类型:整型

参数单位:无

取值范围:5 ~ 2000

默认值:400

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:间隔过大,会使得每次备机读需要回放的Xlog较多,性能变差;间隔过小,会占用更多的磁盘空间,更快到达强制回收点。

standby_force_recycle_ratio

参数说明:开启极致RTO功能后,备机读相关文件触发强制回收的比例。当base page文件总大小超过max_standby_base_page_size* standby_force_recycle_ratio,或者lsn info文件总大小超过max_standby_lsn_info_size* standby_force_recycle_ratio时,触发强制回收,会有查询被取消。当standby_force_recycle_ratio = 0时,不会启动强制回收,max_standby_base_page_size和max_standby_lsn_info_size也不会生效。

参数类型:浮点型

参数单位:无

取值范围:0.0 ~ 1.0

默认值:0.8

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

standby_recycle_interval

参数说明:开启极致RTO功能后,备机读相关文件回收的时间间隔。备机读的资源回收线程,每间隔该参数值的时间,尝试清理一次备机读相关文件。

参数类型:整型

参数单位:s(秒)

取值范围:0 ~ 86400‬。0表示不会回收历史版本页面,同时也会影响备机Xlog的回收,会导致备机占用过多的磁盘空间。

默认值:10

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:设置间隔过长,会导致历史页面回收不及时,可能会导致过多的磁盘占用。

standby_max_query_time

参数说明:开启极致RTO功能后,支持备机上查询的最大时间,超过该时间会被取消。

何时取消查询受回收线程的时间间隔参数standby_recycle_interval和查询取快照的时间影响,因此备机上查询的实际执行时间要大于该参数。

参数类型:整型

参数单位:s(秒)

取值范围:0 ~ 86400‬。0表示回收线程在回收历史页面版本时,若发现查询的快照小于当前回收点,则立即取消查询。

默认值:600

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:建议根据实际业务需要进行调整。

设置不当的风险与影响:如果设置过高,回收线程在计算回收点时会受到影响,可能会阻塞历史版本和Xlog日志的回收,从而导致磁盘空间占用增加。

exrto_transaction_isolation_force_rr

参数说明:在极致RTO备机读场景下,指定事务是否被强制设置为可重复读隔离级别。

参数类型:布尔类型

参数单位:无

取值范围:

  • on:在极致RTO备机读场景下,事务被强制设置为可重复读隔离级别。
  • off:在极致RTO备机读场景下,事务可设置为任意隔离级别。

在极致RTO备机读场景下,需要先确认exrto_transaction_isolation_force_rr参数值为off,再通过transaction_isolation参数设置事务隔离级别。

默认值:

  • 新安装的数据库默认值为off。
  • 若升级的基础版本不存在该GUC参数,默认值为on;若升级的基础版本存在该GUC参数,保留原设置。

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

exrto_standby_read_opt

参数说明:支持极致RTO备机读优化。主机和备机间不同步该参数。

参数类型:布尔型

参数单位:无

取值范围:

  • on:表示开启优化。
  • off:表示关闭优化。

默认值:on

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

walrcv_writer_crc_check_level

参数说明:支持流式容灾场景下,主备集群内备机侧的Xlog校验,默认仅在灾备集群内开启。

参数类型:整型

参数单位:无

取值范围:0 ~ 3
  • 0:关闭校验。
  • 1:灾备集群内校验生效。
  • 2:主集群内备机侧的校验生效。
  • 3:主集群内的备机和灾备集群内节点全部生效。

默认值:1

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议:容灾搭建流程会自动设置,无需用户手动设置。校验失败会导致主备机断连、备集群状态短暂异常,重新拉起后即可恢复。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

standby_read_use_az_info

参数说明:GTM-Lite备机读是否使用AZ信息,优先选择和CN相同的AZ的备机,默认关闭。

参数类型:布尔型

参数单位:无

取值范围:

  • on:表示开启。
  • off:表示关闭。

默认值:off

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:建议根据实际业务需要进行设置,打开开关后,由于需要遍历所有可用备DN节点,再去从中选择,可能会导致查询性能下降。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

standby_read_use_load_balance

参数说明:GTM-Lite备机读是否使用负载均衡功能,随机挑选满足一致性点(和AZ信息)的DN,默认关闭。

参数类型:布尔型

参数单位:无

取值范围:

  • on:表示开启。
  • off:表示关闭。

默认值:off

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:建议根据实际业务需要进行设置,打开开关后,由于需要遍历所有可用备DN节点,再去从中选择,可能会导致查询性能下降。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

enable_standby_bufferpool

参数说明:启用极致RTO备机读独立缓冲区功能的开关。

参数类型:布尔型

参数单位:无

取值范围:

  • on:表示开启。
  • off:表示关闭。

默认值:on

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。

启用该功能开关时,开关生效需满足enable_incremental_checkpoint增量检查点打开,且参数standby_shared_buffers_fraction减去参数standby_bufferpool_scale的差值不小于0.1。

standby_bufferpool_scale

参数说明:设置用于开启极致RTO备机读独立缓冲区功能后,独立缓冲区使用shared_buffers内存缓冲区大小的比例。

参数类型:浮点型

参数单位:无

取值范围:0.1-0.9

默认值:0.5

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:若该值设置不合理,会导致刷页速度加快。

wal_replication_ssl

参数说明:与GUC参数ssl同时使用控制主备之间是否开启SSL通信,只有两个参数均为on时,主备才会走ssl加密传输,如果关闭可以提高主备之间通信性能。

参数类型:布尔型

参数单位:无

取值范围:

  • on:表示开启。
  • off:表示关闭。

默认值:on

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:若该值设置不合理,会导致主备之间通讯安全性下降。

相关文档