#分布式自动选举配置

# 自动选举开关

自动选举开关由HA_ELECTION_ENABLED参数控制,默认值为FALSE,即自动选举默认处于关闭状态,如需开启自动选举功能则需将该参数设置为TRUE,分布式集群部署时会默认打开自选开关。

HA_ELECTION_ENABLED参数支持在线调整,在主备机上执行如下语句进行查看和修改:

--查看参数HA_ELECTION_ENABLED值
SHOW PARAMETER HA_ELECTION_ENABLED;

--修改参数HA_ELECTION_ENABLED值
ALTER SYSTEM SET HA_ELECTION_ENABLED=TRUE;

# 自动选举的心跳时间

自动选举功能依赖如下两个时间参数:

  • 心跳超时时间HA_ELECTION_TIMEOUT

  • 发送心跳的周期HA_HEARTBEAT_INTERVAL

当超过HA_ELECTION_TIMEOUT设置时间备节点仍未收到心跳时,备节点自动发起选举。

在配置文件中,在节点对应的group.node.config配置域下新建参数ha_election_timeoutha_heartbeat_interval并设为规划的值。

Note

1.上述两个时间参数可以不指定,则系统按照默认值配置,HA_ELECTION_TIMEOUT值为9,HA_HEARTBEAT_INTERVAL值为3,单位均为秒。

2.HA_ELECTION_TIMEOUT参数和HA_HEARTBEAT_INTERVAL参数支持在线调整,用户可以根据自身业务系统情况进行适当设置。

3.同一个组内节点的HA_ELECTION_TIMEOUT、HA_HEARTBEAT_INTERVAL和HA_ELECTION_ENABLED参数均应保持一致,否则可能出现异常。

4.部署完成后,如需修改上述两个时间参数可执行ALTER SYSTEM语句进行修改,直接修改toml配置文件无效。

[[group.node]]
    data_path = "/home/yashan/yasdb_data"
    hostid = "host0001"
    role = 1

[group.node.config]
	ha_election_timeout = 9
	ha_heartbeat_interval = 3

部署完成后,用户可以连接到具体节点实例上,通过以下语句查看或修改该节点的参数值:

#查看心跳超时时间
SQL> SHOW PARAMETER HA_ELECTION_TIMEOUT
NAME                      VALUE     
------------------------- --------- 
HA_ELECTION_TIMEOUT       9                                                                    

#查看心跳发送周期
SQL> SHOW PARAMETER HA_HEARTBEAT_INTERVAL
NAME                      VALUE     
------------------------- --------- 
HA_HEARTBEAT_INTERVAL     3  

#修改心跳超时时间
SQL>ALTER SYSTEM SET HA_ELECTION_TIMEOUT=10;

#使用yasboot工具批量修改心跳超时时间
$ yasboot group config set --key HA_ELECTION_TIMEOUT --value 10 --cluster yashandb --group-id 1
pdf-btn 下载文档
copy-btn 复制链接