
# 分布式备机读参数
#### enable_standby_read
**参数说明** **：**控制session是否开启备机读功能。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
仅在GTM-Free、GTM-Lite模式、非灾备集群、非事务块内、hot-standby模式下支持开启。
**参数类型：**布尔型
**参数单位：**无
**取值范围** **：**
- on：表示该session开启分布式备机读功能。
- off：表示该session不开启分布式备机读功能。
**默认值** **：**off
**设置方式：**该参数属于USERSET类型参数，只能在session级别设置（set enable_standby_read = on），不支持gs_guc set/reload方式进行设置。
**设置建议：**无法通过gs_guc进行设置，如需要进行备机查询，请在session会话中开启。
**设置不当的风险与影响** **：**若在非session级别设置（如在配置文件中将该参数打开），在参数冲突时会导致集群无法拉起；在参数不冲突时，会导致后台线程如autovacuum、WorkloadMonitor等也开启分布式备机读模式，其DDL、DML等作业会受到影响而报错。
#### enable_direct_standby_datanodes
**参数说明** **：**控制session是否开启execute direct on扩展能力。该参数开启后，execute direct on语句可以连接到任意一个备DN或者一个分片所有备DN上执行查询，execute direct on语法具体详见《开发指南》的"SQL参考 \> SQL语法 \> E \> EXECUTE DIRECT"。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
- 仅在gtm-free模式、非事务块内、hot-standby模式下支持开启。
- 同一个seesion上，若set enable_standby_read = on 之后设置 set enable_direct_standby_datanodes = on则报错。反之，若set enable_direct_standby_datanodes = on 之后设置 set enable_standby_read= on也报错。
- 该参数打开之后当前session为只读状态，其DDL、DML等作业会受到影响而报错。
- 该参数打开之后执行execute direct on仅支持查询系统视图、系统函数或者系统表等系统DFX信息，不支持查看普通用户表。
- enable_direct_standby_datanodes参数打开后execute direct on支持分布式备机查询，在升级过程使用该功能时必须保证CN和DN实例进程都已替换到最新的二进制，否则会出现报文校验失败执行报错。
 
**参数类型：**布尔型
**参数单位：**无
**取值范围** **：**
- on：表示该session开启execute direct on扩展能力。
- off：表示该session不开启execute direct on扩展能力。
**默认值** **：**off
**设置方式：**该参数属于USERSET类型参数，只能在session级别设置（set enable_direct_standby_datanodes = on），不支持gs_guc set/reload方式进行设置。
**设置建议：**该参数用来控制在分布式备机读场景下execute direct on执行连接行为。主要用于WDR、以及数据库测试和运维使用，其他场景不建议打开使用。该参数无法通过gs_guc进行设置，如需要进行备机查询，请在session会话中开启。
**设置不当的风险与影响** **：**若配置文件中设置打开该参数，将无法启动此数据库节点。
#### standby_read_delay
**参数说明** **：**控制备机读时主备的最大差异，超过该参数不支持备机读。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围** **：**-1 \~ 2147483647
- -1：表示备机读时不需要做主备差异的校验。
- 0：表示主备没有差异的时候才能进行备机读。
**默认值** **：**10000000
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，设置为86400，不带单位，表示86400ms；设置为1d，带单位，表示1d。取值如果要带单位，必须为ms、s、min、h、d。
**设置建议：**根据实际业务需求合理设置。
**设置不当的风险与影响** **：**请在充分理解参数含义，并经过测试验证后进行修改。
#### standby_read_rto
**参数说明** **：**控制备机读时系统最大RTO，超过该参数不支持备机读。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围** **：**-1 \~ 2147483647
- -1：表示备机读时不需要做系统RTO的校验。
- 0：表示至少有一台备机的RTO为0，才能进行备机读。
**默认值** **：**60000
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，设置为86400，不带单位，表示86400ms；设置为1d，带单位，表示1d。取值如果要带单位，必须为ms、s、min、h、d。
**设置建议：**根据实际业务需求合理设置。
**设置不当的风险与影响** **：**请在充分理解参数含义，并经过测试验证后进行修改。
