分布式备机读参数
enable_standby_read
参数说明:控制session是否开启备机读功能。
仅在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语法 > EXECUTE DIRECT”。
- 仅在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中对应设置方法进行设置。例如,设置为86400,不带单位,表示86400ms;设置为1d,带单位,表示1d。取值如果要带单位,必须为ms、s、min、h、d。
设置建议:根据实际业务需求合理设置。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
standby_read_rto
参数说明:控制备机读时系统最大RTO,超过该参数不支持备机读。
参数类型:整型
参数单位:ms(毫秒)
取值范围:-1 ~ 2147483647
- -1:表示备机读时不需要做系统RTO的校验。
- 0:表示至少有一台备机的RTO为0,才能进行备机读。
默认值:60000
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,设置为86400,不带单位,表示86400ms;设置为1d,带单位,表示1d。取值如果要带单位,必须为ms、s、min、h、d。
设置建议:根据实际业务需求合理设置。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。