更新时间:2026-07-28 GMT+08:00
分享

操作步骤

  1. 内核相关参数配置

    recovery_parse_workers、recovery_redo_workers以及recovery_max_workers,请参考环境规格与回放类型选择进行选择。

    wal_level=hot_standby

    日志回放级别需大于或等于hot_standby。

    hot_standby=on

    备机读模块开关需设置为on。

    max_standby_streaming_delay=10s

    回放查询冲突时,备机在取消查询前会等待的时间;此参数会影响RTO。

    如果环境规格与回放类型选择了极致RTO配置,则需要对以下GUC参数进行配置:

    standby_max_query_time=10s

    回收逻辑计算回收点时,会取消超过standby_max_query_time的查询。建议与max_standby_streaming_delay配置保持一致。

    max_standby_base_page_size=256GB

    极致RTO备机读多版本历史空间的阈值,历史页面的base_page达到阈值的80%时,会触发强制回收并取消当前所有持有快照小于新回收点的查询。

    由于极致RTO为解决删除文件类型的回放查询冲突,引入多版本读机制,需持续保存历史版本页面。该空间与Xlog生成速率及实际业务类型强相关,且无法量化,需要以实际业务类型进行验证,才能获得较为可靠的建议占用空间大小。具体场景建议如下:

    1. 需保证读操作不报错,但无法避免备机长查询,且业务可接受RTO在部分查询时临时增加,同时磁盘空间受限:建议指定备机使用串行/并行回放备机读。
    2. 需保证读操作不报错,无法避免备机长查询,且业务不可接受RTO增加,但磁盘空间充足:参考极致RTO回放查询冲突白名单,约束主集群DDL操作,并根据Xlog生成速率及standby_read目录空间膨胀比例,配置更大的max_standby_base_page_size与max_standby_lsn_info_size(经验值为base_page大小是lsn_info的5 ~ 7倍)。
    3. 可接受读报错后重试或避免长查询,但对RTO和磁盘空间有严格要求:需基于实际业务Xlog生成速率及standby_read目录空间膨胀比例,进行针对性配置。
    max_standby_lsn_info_size=256GB

    极致RTO备机读多版本历史空间的阈值,历史页面的base_page达到阈值的80%时,会触发强制回收并取消当前所有持有快照小于新回收点的查询。配置建议参考max_standby_base_page_size。

  2. 选择GTM_FREE/GTM_LITE模式

    • GTM_FREE模式:
      enable_standby_read=on

      SIGHUP级别GUC参数,推荐通过连接串配置或在每个session初始化后执行SQL命令设置:set enable_standby_read=on。

      standby_read_delay=100000000ms

      SIGHUP级别GUC参数,定义主备最大时延,超过该值时禁止向备机下发请求。

      standby_read_rto=60000ms

      设置系统RTO阈值,超过该值时禁止备机读操作。

      enable_gtm_free=on

      开启GTM_FREE模式,POSTMASTER级别参数,需重启生效。

      gtm_option=2

      开启GTM_FREE模式,POSTMASTER级别参数,需重启生效。

    • GTM_LITE模式:
      enable_standby_read=on

      SIGHUP级别GUC参数,推荐通过连接串配置或在每个session初始化后执行SQL命令设置:set enable_standby_read=on;

      enable_gtm_free=off

      关闭GTM_FREE模式,POSTMASTER级别参数,需重启生效。

      gtm_option=1

      开启GTM_LITE模式,POSTMASTER级别参数,需重启生效。

      auto_csn_barrier=on

      开启自动打点功能。

    • GTM_LITE容灾读模式:
      enable_gtm_free=off

      关闭GTM_FREE模式,POSTMASTER级别参数,需重启生效。

      gtm_option=1

      开启GTM_LITE模式,POSTMASTER级别参数,需重启生效。

      主集群配置:

      auto_csn_barrier=on

      开启自动打点功能。

  3. JDBC相关参数配置

    单集群配置:
    jdbc:gaussdb://node1:port,node2:port,node3:port/database?enableStandbyRead=true

    enableStandbyRead:连接CN后启用备机读操作,需配合内核参数配置生效。

    容灾读场景(灾备集群)配置:

    jdbc:gaussdb://node1:port,node2:port,node3:port/database?isasterToleranceCluster=true&autoBalance=true
    • disasterToleranceCluster:启用后,会自动判断目标集群是主集群还是灾备集群;配置的IP需指向目标集群CN的IP。
    • autoBalance:表示开启负载均衡。
      • true、balance或roundrobin:表示开启JDBC负载均衡功能,将应用程序的多个连接均衡分配至数据库集群中的各个可用CN
      • priorityn:表示开启JDBC优先级负载均衡功能,将应用程序的多个连接均衡到URL中前n个可用的CN数据库节点。
      • shuffle:表示开启JDBC随机负载均衡功能,将应用程序的多个连接随机均衡到数据库集群中的各个可用CN。
      • specified:表示开启JDBC负载均衡功能,并且只在用户URL中指定的节点上建立连接。
      • shufflen:表示开启JDBC在指定节点上优先随机负载均衡功能,将应用程序的多个连接优先随机分配至URL中前n个可用的CN数据库节点。当URL上配置前n个节点全部不可用时,连接会随机分配至其他可用CN节点。
      • false:表示不开启JDBC负载均衡功能和优先级负载均衡功能。

    灾备集群启用分布式容灾读模式时,不可配置enableStandbyRead=on,否则请求将被拦截。

相关文档