#分布式自动选举配置
# 自动选举开关
自动选举开关由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_timeout
及ha_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