集群使用
本节介绍的命令均使用安装数据库的系统用户vastbase进行操作。
- 本节仅介绍集群的启停与其它基础使用命令,关于has_ctl的详细用法及参数说明请参考has_ctl工具介绍。
- 在部署有HAS工具的情况下,对于某些既可以直接调用内核工具,也可以调用HAS工具进行执行的命令,如:switchover、build等,请优先使用HAS工具,因为如果直接调用内核工具,有可能HAS感知不到用户正在手动执行指令,进而误判集群状态异常。
- HAS有进程保活功能,并且会实时监控集群状态并进行自动故障处理,如果运维人员需要手动处理集群状态或进行问题调试定位等,最好执行has_ctl pause命令将HAS服务暂停掉,否则可能会干扰运维操作,待运维操作完成后可以执行has_ctl resume命令恢复HAS服务。
集群启停
启动集群
使用数据库安装用户vastbase,在集群内任一服务器上执行以下命令启动集群。
has_ctl start
启动过程如下:
停止集群
使用数据库安装用户vastbase,在集群内任一服务器上执行以下命令停止集群。
has_ctl stop
执行结果如下:
查看集群状态
使用数据库安装用户vastbase,在集群内任一服务器上执行以下命令查看集群状态:
has_ctl query -C -v -i
执行成功后会显示主备库各节点的信息,下图为一主两备的情况:
主备切换
使用数据库安装用户vastbase,在集群内任一服务器上执行以下命令,指定要切换为新主机的节点编号NODEID和数据目录DATA_DIR,命令如下:
has_ctl switchover -n NODEID -D DATA_DIR
例如:
has_ctl switchover -n 2 -D /opt/vastbase/install/data/dn
上述命令将节点编号为2的节点切换为主节点。执行成功后,使用如下语句查看切换后的集群状态信息:
has_ctl query -C -v -i
如下所示,node id为2的节点vastbase切换为新主:
switchover是维护操作,会变更集群内主机运行的节点,在确保数据库实例状态正常和业务结束情况下,无主备追赶后再进行switchover操作。
修改集群配置
可以使用vb_guc工具,修改Vastbase数据库配置文件中的参数:
vb_guc set -N all [-D DATADIR] -c "parameter = value"
例如:
vb_guc set -Z datanode -N all -I all -c "max_process_memory=10GB"
故障切换
在主库机器故障时,集群管理组件会自动从备机中选出新主并提升为主库。
集群启动后,各节点部署运行的has_agent会持续监控并上报本节点数据库当前状态给has_server,has_server 通过心跳机制主动发现节点异常或通过has_agent主动上报,发现当前集群内主库故障,在当前运行的备机中选出新主机,下发failover命令给新主的has_agent,使备机自动升主,继续由主机提供数据库读写服务。
以下为使用has_ctl stop -n 主节点ID
的方式停掉主库,模拟故障切换场景。
集群初始阶段,查看状态:
has_ctl query -C -v -i
模拟故障,停止主库:
has_ctl stop -n 2
查看集群状态:
has_ctl query -C -v -i
返回结果如下,表示node 1节点的vastbase已经升为新主: