更新日期:2024年09月11日
单实例升级多实例
步骤:升级-->扩容-->多实例numa 绑定[可选]
第一步:升级
升级语法无变化,升级的原集群必须是952 及952 以上的版本。
./gcinstall.py --silent=demo.options –U
升级命令执行成功后需在各服务器再次执行一遍SetSysEnv.py 进行环境变
量配置:python SetSysEnv.py --installPrefix=/opt --dbaUser=gbase
集群升级,gcwareHost 必须指定且值必须为旧版本gcware 节点。
集群升级,IPV4 不能指定gcwareHostNodeID ;非IPV4 必须指定
gcwareHostNodeID 且值必须为已有gcware 的nodeid。
说明:
非IPV4 指定gcwareHostNodeID,可以到gcware/config 目录下查看
gcware.conf,
里面有nodeid。
Totem 下的nodeid 是gcwarehostnodeid,
gcware
南大通用数据技术股份有限公司
41/44
下的nodeid 是coordinatehostnodeid。
第二步:扩容,使用数据库管理员用户(如:gbase)执行。
给新增加的多实例节点安装集群软件
./gcinstall.py --silent=demo.options --license_file=gbase.lic
demo.options
需修改:添加
dataHost ,填写当前已存在的
existCoordinateHost
、existDataHost
、existGcwareHost ,注释
#coordinateHost
、
#coordinateHostNodeID
、
#gcwareHost
、
#gcwareHostNodeID
创建distribution
gcadmin distribution gcChangeInfo.xml p 1 d 1
生成新的hashmap
gbase> initnodedatamap;
数据重分布
下面的rebalance 参数根据需要重分布的数据量进行灵活设置
gbase> set global gcluster_rebalancing_concurrent_count=0;
gbase> rebalance instance;
gbase> set global gcluster_rebalancing_concurrent_count=3;
gbase> select * from gclusterdb.rebalancing_status;
删除旧的hashmap
gbase> refreshnodedatamap drop 1;
删除旧的distribution
[gbase@pst_w61 ~]$ gcadmin rmdistribution 1;
第三步:多实例numa 绑定[可选]
根据实际需要可选择是否绑定numa 节点,绑定方式参考2.3 章节NUMA 绑
定。
修改多实例下的gnode/server/bin/gcluster_services 文件后重启集群服
务。
注意:
单实例升级多实例版本中扩容步骤可能出现的问题:
./gcinstall.py --silent=demo.osptions --license_file=20210323.lic
南大通用数据技术股份有限公司
42/44
执行完后,多实例的数据节点下没有license 文件,重新执行./License 导
入也没有该文件,需要手动拷贝过去后启动gbase 服务
多实例升级多实例
升级语法无变化
自动回退
单实例升级多实例或多实例升级多实例过程中发生错误,升级失败后都
会自动回退,无需人工干预。
手工回退
要求回退前集群可用。回退语法如下:
切换到gcinstall 目录下
python Restore.py --silent=demo.options –backupFile= --
backupGcwareFile=
注:
如果是多实例回退到单实例,要求升级后没有对集群进行过扩容缩容操作。
升级程序在升级前备份原集群重要文件,如系统表、环境变量等,用户数据
不备份。如果原集群是多实例,备份文件会带多实例标识,回退程序会通过读取
备份文件来自动判断回退目标是单实例还是多实例进行回退。