GBase 8a
其他
文章

复合节点做节点替换测试

发表于2025-01-01 10:46:4878次浏览1个评论

https://www.gbase8.cn/10193
GBase 8a 多实例版本9.5.3节点替换操作过程记录

重装完os,设置opt tmp属主,环境设置脚本,创建gbase用户设置密码

1、gcware 节点替换步骤:
在 gcware 服务正常的节点上执行替换: 
cd $GCWARE_BASE/gcware_server/ 
./gcserver.py --prefix=/opt --host=172.16.9.181 --dbaUser=gbase --dbaPwd=gbase2 --overwrite
gcware服务已经从CLOSE转为OPEN状态

准备新节点环境
1、新节点的 IP 与当前待替换节点 IP 相同
2、新节点的操作系统版本与当前的待替换节点相同
3、原有集群没有打过补丁

2、检查节点状态,集群状态应为 normal
gcadmin showcluster vc vc_ggjc
--
VIRTUAL CLUSTER MODE:  NORMAL

设置被替换节点状态为 unavailable:
$ gcadmin setnodestate 172.16.9.181 unavailable

步骤 3:删除被替换节点的 feventlog。
$ gcadmin rmfeventlog 172.16.9.181

coor节点做替换

执行 replace.py 命令需要在集群中的一个Coordinator 节点,使用集群安装用户 dbauser 进行替换。
cd /opt/gcinstall/
$ ./replace.py --host=172.16.9.181 --type=coor --dbaUser=gbase --dbaUserPwd=gbase2 --generalDBUser=root --generalDBPwd= --overwrite --sync_coordi_metadata_timeout=30000 --retry_times=0


103节点报错:execute sync metadata command failed on node :['10.10.55.103']
拷贝安装包到103,在103执行replace.py成功。可能是环境问题

删除被替换节点的 feventlog
$ gcadmin rmfeventlog 172.16.9.181

创建中间distribution
gcadmin getdistribution 1 1.xml vc vc_ggjc
修改新的 distribution 的分布规则信息。
修改原则:让被替换节点没有任何分片,其他节点分片的分布规则不变,

若被替换节点存储的分片是作为主分片,则将该分片的备份分片节点修改为主分片节点,并删除 duplicatenodes 标签。
若被替换节点存储的分片是作为备份分片,则将该 duplicatenodes 标签删除。

执行创建新的 distribution

vi 2.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
<cfgFile file="1.xml"/>
</servers>

gcadmin distribution 2.xml  vc vc_ggjc
--注意,不需要加p 1 d 1
|   vc_ggjc    |      1,3       |           |

gcadmin showdistribution vc vc_ggjc node

初始化 hashmap 并进行数据重分布
gbase> use vc vc_ggjc;
gbase> initnodedatamap;
gbase> rebalance instance to 3;

查看 rebalance 状态:
gbase> select index_name,status,percentage,priority,host,distribution_id from gclusterdb.rebalancing_status;

gbase> select count(*),status from gclusterdb.rebalancing_status group by status;

设置并发数:
set global gcluster_rebalancing_concurrent_count=30

做完重分布检查
select count(*),status from gclusterdb.rebalancing_status group by status;
select count(*) from gbase.table_distribution where data_distribution_id =1;
--0


执行节点替换命令
cd /opt/gcinstall/

./replace.py --host=172.16.9.181 --type=data --dbaUser=gbase --dbaUserPwd=gbase2 --generalDBUser=root --generalDBPwd= --overwrite --vcname=vc_ggjc


完成后的集群信息如下:
$ gcadmin showdistribution vc vc_ggjc node
|   vc_ggjc    |      1,3       |           |变成
|   vc_ggjc    |      3,4       |           |

进行数据重分布
gbase> use vc vc_ggjc;

gbase> rebalance instance to 4;

做完重分布检查
select count(*),status from gclusterdb.rebalancing_status group by status;
select count(*) from gbase.table_distribution where data_distribution_id =1;
--0


删除旧的 distribution
确保所有数据 rebalance 完成后,可以将旧的 distribution 删掉

$ gcadmin rmdistribution 3 vc vc_ggjc

 


-----------------------------------
报错:环境问题导致
node [172.16.9.181] build data packet failed
build data packet failed
Error: execute ssh command failed, error no [1]
Error cause:  
Traceback (most recent call last):
 File "/tmp/gadm_cp_sys_tbl.py", line 1157, in <module>
   main()
 File "/tmp/gadm_cp_sys_tbl.py", line 1062, in main
   if 0 != get_gcware_base():
 File "/tmp/gadm_cp_sys_tbl.py", line 434, in get_gcware_base
   gbase_instances_base = os.environ["GBASE_INSTANCES_BASE"]
 File "/usr/lib64/python2.7/UserDict.py", line 23, in __getitem__
   raise KeyError(key)
KeyError: 'GBASE_INSTANCES_BASE'

clear node [172.16.9.181] gbase.tar and plugin.tar failed, please remove it manually
sync data node metadata failed
check ip start ......
check ip end ......

原因:181节点的环境有问题导致的,gcadmin提示命令不存在
181节点。gbase_profile添加export GBASE_INSTANCES_BASE=/opt

 

 

 

评论

登录后才可以发表评论
用户头像
levvel发表于 7个月前
嗯,只能说不错!