操作步骤
- 内核相关参数配置。
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场景需同时设置以下参数:
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生成速率及实际业务类型强相关,且无法量化,需要以实际业务类型进行验证,才能获得较为可靠的建议占用空间大小。具体场景建议如下:
- 需保证读操作不报错,但无法避免备机长查询,且业务可接受RTO在部分查询时临时增加,同时磁盘空间受限:建议指定备机使用串行/并行回放备机读。
- 需保证读操作不报错,无法避免备机长查询,且业务不可接受RTO增加,但磁盘空间充足:参考极致RTO回放查询冲突白名单,约束主数据库实例DDL操作,并根据Xlog生成速率及standby_read目录空间膨胀比例,配置更大的max_standby_base_page_size与max_standby_lsn_info_size(经验值为base_page大小是lsn_info的5 ~ 7倍)。
- 可接受读报错后重试或避免长查询,但对RTO和磁盘空间有严格要求:需基于实际业务Xlog生成速率及standby_read目录空间膨胀比例,进行针对性配置。
max_standby_lsn_info_size=256GB
极致RTO备机读多版本历史空间的阈值,历史页面的base_page达到阈值的80%时,会触发强制回收并取消当前所有持有快照小于新回收点的查询。配置建议参考max_standby_base_page_size。
- JDBC相关参数配置。
jdbc:gaussdb://node1,node2,node3,node4,node5,node6/database?targetServerType=slave
targetServerType:指定要连接的服务器类型。该参数通过查询URL连接串中数据节点是否允许写操作,来识别主备数据节点,默认值为any。
取值详解:- master:表示依次尝试连接URL中配置的IP,直到连接到主节点,若失败则抛出异常。
- slave:表示依次尝试连接URL中配置的IP,直到连接到备节点,若失败则抛出异常。
- preferSlave:表示尝试连接到URL中的备节点(如有可用节点),否则连接主节点。
- any:尝试连接URL中的任意节点。
- clusterMainNode:表示尝试连接到URL中的主节点或首备节点(容灾主节点),若失败则抛出异常。