# 分布式备机读参数
#### enable_standby_read
**参数说明** **：**控制session是否开启备机读功能。
![](https://support.huaweicloud.com/distributed-ref-v10-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语法具体详见[EXECUTE DIRECT](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0333.html)。
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
- 仅在gtm-free模式、非事务块内、hot-standby模式下支持开启。
- 同一个session上，若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实例进程都已替换到最新的二进制，否则会出现报文校验失败执行报错。
- 该参数打开之后查询dbe_perf.statement、dbe_perf.summary_statement等系统视图数据，均为单独的CN上的数据，不包含主DN数据，不建议客户开启该参数后进行数据查询。
- 如果需要查询DN上数据可通过execute direct on datanodes进行查询。
 
**参数类型：**布尔型
**参数单位：**无
**取值范围** **：**
- 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-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__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-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，设置为86400，不带单位，表示86400ms；设置为1d，带单位，表示1d。取值如果要带单位，必须为ms、s、min、h、d。
**设置建议：**根据实际业务需求合理设置。
**设置不当的风险与影响** **：**请在充分理解参数含义，并经过测试验证后进行修改。
