VastbaseG100

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

Menu

部署HAS服务

安装HAS

在当前主流的x86_64指令集以及鲲鹏aarch64指令集的操作系统中,HAS的安装包信息如下:

HAS_VastbaseG100_${指令集名称}_${版本}_${datetime}.zip

使用root用户直接将安装包解压到HAS的安装目录:(此处假设安装包放在/home/vastbase/has路径下)

mkdir -p /home/vastbase/has
cd /home/vastbase/has
unzip HAS_VastbaseG100_${指令集名称}_${版本}_${datetime}.zip

  • 安装包在Linux解压后已经具有可执行权限。

  • 如果已经在其他平台解压了安装包,需要使用命令chmod +x 可执行文件名赋予用户(数据库用户)可执行权限,下同。

配置HAS

HAS配置文件默认放在/home/vastbase/has/etc目录中,默认名称为vastbase.yml。

  • HAS配置文件路径和文件名称应与vastbase-has文件中CONFIG_FILE 所指定的内容保持一致。

  • vastbase-has文件在后续配置中会使用到。

在数据库主、备节点上使用数据库用户vastbase编辑HAS的yml配置文件,写入仲裁存储、共享存储、Vastbase的相关信息。2个数据库节点的HAS配置文件略有不同,需要注意修改。

更多HAS配置文件模板和关键参数参考vastbase.yml

配置VIP

步骤1 使用数据库用户vastbase进行操作。在/home/vastbase/has/bin目录下检查has_callback.sh脚本是否具备可执行权限,若缺少权限,则用如下语句进行赋权:

chmod +x has_callback.sh

步骤2 脚本中执行的命令需要管理员权限,因此需要添加vastbase用户为sudoer。使用root用户执行visudo命令,并添加内容:

visudo
vastbase ALL=(ALL) NOPASSWD: ALL       #将该行内容加至文件末尾

  • 为确保内容生效,请将上述内容添加至配置文件的最末行。

  • 语句中的vastbase为数据库用户,可替换成实际的用户名。

  • 确认/usr/bin/sudo命令具有执行权限,如果不具备执行权限,执行chmod u+s /usr/bin/sudo赋予执行权限。

  • 确认/usr/sbin/ip和/usr/sbin/arping命令具有执行权限,如果不具备执行权限,执行chmod +x赋予执行权限。

步骤3 使用vastbase用户编辑has_callback.sh脚本,在数据库主、备节点使用相同配置。修改部分如图所示,需对应VIP节点的网卡信息:

  • 该脚本文件由HAS在节点角色切换时调用,用于绑定与释放VIP。脚本内容参考has_callback.sh

  • VIP地址等信息以及ip与arping命令实际路径请根据实际情况填写。

配置脚本

配置check_peer_mount_info.sh脚本

步骤1 使用数据库用户vastbase进行操作。在/home/vastbase/has/bin目录下检查check_peer_mount_info.sh文件是否具备可执行权限,无权限则使用如下语句授权:

chmod +x check_peer_mount_info.sh

文件调用于failover发生前:检查仲裁盘中的挂载信息失败后,会调用此脚本返回对端挂载信息。脚本参考

步骤2 参考下图修改配置文件,该文件调用于failover发生前:检查仲裁盘中的挂载信息失败后,会调用此脚本返回对端挂载信息。脚本参考check_peer_mount_info.sh

check_peer_mount_info.sh修改部分:

配置项描述如下:

  • CONNECT_TIMEOUT=10:ssh连接超时时间,默认为10s。CONNECT_TIMEOUT秒内ssh没有返回则视为连接超时。

  • PEER_USER:ssh连接的对端用户(数据库安装用户)。

  • PEER_IP:ssh连接的对端的IP。

  • PEER_MOUNT_POINT:对端的共享设备挂载目录。

  • PEER_VASTBASE_DIR:对端的数据库集簇所在目录。

  • SSH_RESULT_FILE:本脚本临时记录命令的日志信息,用于检查命令执行的结果是否符合预期。

配置mount.sh脚本

步骤1 使用数据库用户vastbase进行操作。在/home/vastbase/has/bin目录下检查mount.sh文件是否具备可执行权限,无权限则使用如下语句授权:

chmod +x mount.sh

步骤2 参考下图修改配置文件,该文件用于在主节点启动数据库时挂载数据存储设备。脚本参考mount.sh

mount.sh修改部分:

配置umount.sh脚本

步骤1 使用数据库用户进行操作。在/home/vastbase/has/bin目录下检查umount.sh是否具备可执行权限,无权限则使用如下语句授权:

chmod +x umount.sh

步骤2 参考下图修改配置文件,该文件由HAS在节点角色切换时调用,用于在停止HAS服务或切换为备节点时取消挂载。脚本参考umount.sh

umount.sh修改部分:

配置check_arbitrator.sh脚本

步骤1 使用数据库用户进行操作。在/home/vastbase/has/bin目录下检查check_arbitrator.sh是否具备可执行权限,无权限则使用如下语句授权:

chmod +x check_arbitrator.sh

步骤2 参考下图修改配置文件,该文件用于在HAS服务启动前检查仲裁设备读写权限。如当前用户没有相应权限则进行添加。脚本参考check_arbitrator.sh

check_arbitrator.sh修改部分:

配置check_switchover.sh脚本

步骤1 使用数据库用户进行操作,在/home/vastbase/has/bin目录下检查check_switchover.sh是否具备可执行权限,无权限则使用如下语句授权:

chmod +x check_switchover.sh

步骤2 参考下图修改配置文件,该文件由HAS在switchover前进行调用,用于检查是否有其他进程正在使用挂载点,如果有,则switchover失败;否则继续进行switchover。脚本参考check_switchover.sh

check_switchover.sh修改部分:

配置HAS服务

使用root用户将HAS加入系统服务,便于管理。

1、配置服务。

参考下图修改配置文件/usr/lib/systemd/system/has.service,参考has.service

2、配置服务启动时的环境变量。

参考下图修改配置文件/etc/sysconfig/vastbase-has,参考配置文件vastbase-has

  • vastbase-has中的VIP地址等信息需要与has_callback.sh中保持一致。
  • “CONFIG_FILE”即配置文件vastbase.yml的路径。

以服务方式启动HAS后,数据库进程也属于该服务,若使用kill -9杀死HAS进程,数据库进程也会被杀死。

3、加载HAS服务。

systemctl daemon-reload

4、HAS操作命令。

启动HAS服务前,需要进行检查操作,参见:启动前检查

  • 启动HAS服务:

    systemctl start has
    
  • 查看启动状态:

    systemctl status has
    

    停止HAS服服务命令:systemctl stop has

  • HAS启动完毕,查看集群状态:

    /home/vastbase/has/bin/sd_hasctl -c <yml配置文件> list
    

经验证,集群功能正常。

至此,HAS V1.4 for Vastbase G100高可用集群部署完成。