VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

HAS For Vastbase G100 V1.5

发布日期

2023年11月06日

新特性

支持 DCS 的 failsafe 能力,即 DCS 故障安全模式。

引入故障安全模式后,当 DCS 不可用时,HAS 之间会互相通信,只要主节点的 HAS 能够得到所有备节点的应答就认为集群正常,不会引发主节点的降级处理或主备切换,增加了集群的稳定性。

注意事项

相较于 HAS V1.2,HAS V1.5 不支持级联备,不支持双集群部署。

平台适配

CPU操作系统
Intel x86CentOS 7.x
鲲鹏920CentOS 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