云数据库 GAUSSDB-备服务器:hot_standby

时间:2024-11-02 18:49:45

hot_standby

参数说明:设置是否允许备机在恢复到minrecovery点后接受连接和查询。

该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

  • 如果此参数设置为on,wal_level级别必须设置为hot_standby或以上,否则将导致数据库无法启动。
  • 在分布式环境中,因为会对双机其他一些功能产生影响,hot_standby参数不能设置成off。
  • 如果hot_standby参数曾经被关闭,且wal_level参数曾被设置低于hot_standby等级,那么,再次打开hot_standby参数之前,为了确保主备环境下备机上待回放的日志都可以支持备机查询功能,需要进行如下操作:
    1. 将主、备的wal_level参数调整到hot_standby等级或以上,并重启实例生效。
    2. 在主机上执行checkpoint操作,并通过查询pg_stat_get_wal_senders()系统函数,确认各个备机的receiver_replay_location追上主机当前的sender_flush_location,保证wal_level的调整同步到备机并生效,且备机不需要再回放之前低等级的日志。
    3. 将主、备的hot_standby参数打开(设为on),并重启实例生效。
  • 备机读开启后,因备机回放与查询冲突,可能会出现查询被取消的报错,报错信息有:
    • ERROR: canceling statement due to conflict with recovery
    • ERROR: terminating connection due to conflict with recovery
  • 在串行和并行回放备机读下,主机在进行在线重建索引时,备机读可能会报错,备机读请稍后重试。报错信息包含:
    • could not open relation with OID xxx during recovery delete object, please try again later
    • Catalog is missing xxx attribute(s) for relid xxx
    • cache lookup failed for index xxx, refilenode:xxx, name:"xxx"
    • could not find pg_class entry for xxx
  • 在极致RTO备机读的情况下,内存配置较小的虚拟机可能出现内存不足的报错,可通过开启GUC参数exrto_standby_read_opt(默认开启)有效降低内存和IO开销,解决此问题。
  • 备机不支持自治事务功能。
  • 典型场景下的备机读性能:使用sysbench进行测试,主机执行100并发的update类型业务,主备机同时执行200并发的读类型业务,在IO和CPU不受限的条件下,串行回放备机读的性能不低于主机读业务性能的80%,极致RTO备机读的性能和串行回放备机读的性能相比劣化不超过10%。

取值范围:布尔型

  • on表示允许备机在恢复到minrecovery点后接受连接和查询。
  • off表示不允许备机在恢复到minrecovery点后接受连接和查询。

默认值:on

support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1709.html