HAS For Vastbase G100 V1.5
发布日期
2023年11月06日
新特性
支持 DCS 的 failsafe 能力,即 DCS 故障安全模式。
引入故障安全模式后,当 DCS 不可用时,HAS 之间会互相通信,只要主节点的 HAS 能够得到所有备节点的应答就认为集群正常,不会引发主节点的降级处理或主备切换,增加了集群的稳定性。
注意事项
相较于 HAS V1.2,HAS V1.5 不支持级联备,不支持双集群部署。
平台适配
CPU | 操作系统 |
---|---|
Intel x86 | CentOS 7.x |
鲲鹏920 | CentOS 7.x |
升级步骤
仅支持从HAS V1.2 升级至 HAS V1.5。
若需将HAS V1.5 回退至 HAS V1.2 ,应遵循停止 HAS 服务、还原备份的 HAS 文件和配置、删除 DCS 中相关数据、启动 HAS 服务的顺序进行操作,具体命令可参考升级步骤做相应调整。
前置准备
步骤1 停止 HAS 服务,按异步备库、同步备库、主库的顺序依次串行执行如下步骤,注意要确认 HAS 进程结束后再切换至下一台服务器继续执行:
systemctl stop has
ps -ef | grep has
步骤2 备份原 HAS 服务的数据文件。在部署了 HAS 服务的服务器节点均执行如下步骤:
mv /usr/local/has /root/has_bak_202404/has1.2_bak_202404
cp -x /usr/lib/systemd/system/has.service /root/has_bak_202404/has.service_bak
升级步骤
步骤1 上传新版本 HAS 并解压替换,部署了 HAS 服务的节点均要操作。此处以上传新版本 HAS 到 /data/soft 为例,解压即用。
cd /data/soft/ #软件上传目录
mkdir -p /usr/local/has/{logs,tmp,vb_log}
unzip HAS_VastbaseG100_aarch64_V1.5_2023110115.zip -d /usr/local/has
cp -a /root/has_bak_202404/has1.2_bak_202404/has_vip.sh /usr/local/has/
cp -a /root/has_bak_202404/has1.2_bak_202404/vb.yml /usr/local/has/
chown -R vastbase.vastbase /usr/local/has
chmod +x /usr/local/has/bin/{has,hasctl}
cp -f /usr/local/has/bin/{has,hasctl} /usr/bin/
步骤2 HAS 服务配置修改,部署了 HAS 服务的节点均要操作。
1、修改 HAS 配置文件 vb.yml,在 vastbase_home 参数下方新增一行 vastbase_log 参数。
vi /usr/local/has/vb.yml
vastbase_home: /home/vastbase/vasthome
vastbase_log: /usr/local/has/vb_log
2、修改 HAS 服务配置文件 has.service:
在 Type 参数下方新增一行 WorkingDirectory 参数。
修改 Environment 参数值,追加 GAUSSHOME、GAUSSLOG、GAUSSLOG 3个环境变量,中间以空格隔开(不换行)。
vi /usr/lib/systemd/system/has.service
WorkingDirectory=/usr/local/has
Environment=LANG=en_US.UTF-8 GAUSSHOME=/app/vasthome GAUSSLOG=/data/pg_log OM_GAUSSLOG=/data/pg_log
3、保存 has.service 后执行:
systemctl daemon-reload
步骤3 删除 DCS 中相关数据。在 DCS 集群中删除原 HAS 集群保存的数据,以下在任一节点执行即可。
1、执行如下命令确定只有1个 HAS 的服务数据,若有多份数据,需明确要删除的是哪份数据。
dcsctl ls /
2、删除服务数据,以执行以上命令后仅返回一条信息为例:
dcsctl rm -r `dcsctl ls /`
步骤4 启动HAS服务。
1、按主库、同步备库、异步备库的顺序依次启动HAS服务。
systemctl start has
2、启动成功后,检查 HAS 服务和 HAS 集群状态,当节点的 State 为 running 时表示该节点数据库已正常运行,可启动下个节点的 HAS 服务:
systemctl status has #查询HAS服务状态
hasctl -c /usr/local/has/vb.yml list #查询HAS集群状态
如果服务未正常启动,可查看 HAS 日志:
tail -f /var/log/messages
或者:
journalctl -u has -f
步骤5 查看 HAS 版本,至此升级完成。
hasctl version