GBase 8a
安装配置
文章

V86集群版本升级

发表于2025-06-26 09:58:5815次浏览0个评论

确认集群运行正常
判断标准:
gcadmin 命令输出均在线正常
gcadmin showdmlevent输出错误为0个 
gcadmin showddlevent输出错误为0个
gcadmin showdmlstorageevent输出错误为0个

需要打开集群间允许root登录
备份集群信息
切换gbase用户,进入/home/gbase目录,在第一个管理节点为所有节点新建备份目录to_new_version:
cexec all: "mkdir /home/gbase/to_new_version"
备份corosync配置文件时有可能报权限不够,需root用户修改/etc/corosync/权限为755。
#使用root用户修改所有管理节点的/etc/corosync/权限:
cexec coor: "chmod 755 /etc/corosync/"
在第一个管理节点执行以下命令备份集群信息:
#备份集群层参数:
cexec coor: 1 'gccli -ugbase -p****** -e"show variables"|sort ' >/home/gbase/to_new_version/coor_1_before.$(date +"%Y%m%d")
#备份节点层参数:
cexec data: 1 'gncli -ugbase -p****** -e"show variables"|sort '>/home/gbase/to_new_version/data_1_before.$(date +"%Y%m%d")
#备份集群版本:
gccli -ugbase -p****** -e"show variables like 'version'" >/home/gbase/to_new_version/version_before.$(date +"%Y%m%d")
#备份gclusterd版本:
cexec coor: "/opt/gcluster/server/bin/gclusterd -V">/home/gbase/to_new_version/gclusterd_version_before.$(date +"%Y%m%d")
#备份gbased版本:
cexec data: "/opt/gnode/server/bin/gbased -V">/home/gbase/to_new_version/gbased_version_before.$(date +"%Y%m%d")
#备份gcware版本:
cexec coor: "gcadmin -V">/home/gbase/to_new_version/gcadmin_version_before.$(date +"%Y%m%d")
#备份gcluster配置文件:
cexec coor: "cp /opt/gcluster/config/gbase_8a_gcluster.cnf /home/gbase/to_new_version/gbase_8a_gcluster.cnf_before.$(date +"%Y%m%d")"
#备份gnode配置文件
cexec data: "cp /opt/gnode/config/gbase_8a_gbase.cnf /home/gbase/to_new_version/gbase_8a_gbase.cnf_before.$(date +"%Y%m%d")"
#备份corosync配置文件:
cexec coor: "cp /etc/corosync/corosync.conf /home/gbase/to_new_version/corosync.conf_before.$(date +"%Y%m%d")"
配置demo.options
进入/opt/ndty_soft/new_version目录(第一个管理节点操作)
解压安装包:
tar xfj GBase8a_MPP_Cluster-NoLicense-8.6.2_build43-R34-2-SuSE12-x86_64.tar.bz2
进入/opt/ndty_soft/new_version/gcinstall目录,更新demo.options文件
# cat demo.options
installPrefix= /opt 
coordinateHost = xx,xx
dataHost = xx,xx
#existCoordinateHost =
#existDataHost =
loginUser= root
loginUserPwd = 'xxxx'
#loginUserPwdFile = loginUserPwd.json
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'xxxx'
rootPwd = 'xxxx'
#rootPwdFile = rootPwd.json
dbRootPwd = 'xxxx'
#mcastAddr = 226.94.1.39
mcastPort = 5493
参数说明如下:
installPrefix:指定安装目录。
coordinateHost :所有coordinator节点IP列表,IP地址之间用“,”分隔。
dataHost: 所有data节点IP列表,IP地址之间用“,”分隔。#共用的情况?
loginUser: 通过该用户ssh到集群各节点,默认为操作系统用户root。
loginUserPwd:操作系统root用户的密码。
dbaUser: 集群运行时使用的操作系统用户名gbase。
dbaGroup: 集群运行时使用的操作系统用户所属的组名gbase。
dbaPwd: 操作系统用户gbase的密码。
rootPwd: 操作系统root用户的密码。
dbRootPwd: 数据库root用户密码。
mcastPort:组播端口,缺省值为5493
停止对外服务
联系项目组,确认业务已经停止。
判断标准:各节点 show processlist 没有外部服务连接。
第一个管理节点上执行,除ip外没有其他输出即可。
cexec coor: 'gccli -ugbase -p****** -e"show processlist;" | grep -ivE "sleep|processlist|Command|event_scheduler"'
停止集群服务
确认各节点没有业务后,在第一个管理节点上使用root用户停止集群服务。
停止集群服务,停集群前先查看是否开启了审计日志(数据库里查看:show variables like '%audit%'; on代表打开,off代表关闭),2.8节执行升级操作需看审计日志是否开启。
停止集群服务
cexec all: "service gcware stop"
检查进程是否全部停掉:
cexec coor: "ps -ef | grep gclusterd | grep -v grep"
cexec data: "ps -ef | grep gbased | grep -v grep"
cexec coor: "ps -ef | grep corosync | grep -v grep"
修改操作系统root、gbase用户密码(各节点要求一致)
root用户执行:(审计要求采用脚本执行,变更结束后需重置root密码)
cexec all: "echo root:xxxx |chpasswd"
cexec all: "echo gbase:xxxx|chpasswd"
执行升级操作
切换gbase用户,进入/opt/ndty_soft/new_version/gcinstall目录执行:
./gcinstall.py --silent=demo.options -U
备注:如果集群开启了审计日志,则在升级参数中可以跳过备份audit_log表:
./gcinstall.py --silent=demo.options -U --skip_audit

评论已关闭