由于盘阵异常造成节点完全丢失,节点替换过程以及需注意要点
***项目GBase节点替换方案
目 录
1 背景 1
1.1 总体计划 1
1.2 异常处理 1
2 替换步骤 2
2.1.1 前期准备 2
2.1.2 执行替换操作 2
2.1.3 回退方案 2
1背景
***项目目前GBase 8a集群规模是40节点,由于26(***.***.***.27)节点盘阵出现逻辑穿透,产生无法恢复性损坏,该节点所有数据丢失,需进行节点替换恢复数据。
集群环境描述:
Coordinator节点:***.***.***.1-***.***.***.1
Data节点:
***.***.***.1 - ***.***.***.10 ***.***.***.12-***.***.***.41共40个节点
待节点替换的data节点IP:***.***.***.27
替换原因:***.***.***.1的***文件目录盘阵出现逻辑穿透,产生无法恢复性损坏,修复后有数据丢失,对***t进行文件系统格式化,做节点替换操作。
1.1总体计划
序号 时间 操作内容
1 2025/06/13 20:00 终止跑批任务(一般这个时候只剩下销管的数据没到)
2 2025/06/13 20:00–22:00 停数据库,在替换的27节点安装数据库
3 2025/06/13 22:00 启动数据库
4 2025/06/13 22:00-23:00 执行节点替换
5 2025/06/13 23:00-2025/06/15 23:00 数据自动进行同步(其中数据库使用高峰期间使用技术手段暂停数据同步释放资源)
6 2025/06/15 23:00 完成节点替换,数据同步完毕
1.2异常处理
如果步骤5(数据同步)时间过长,判断会影响第二天凌晨moia的跑批任务,则暂停数据同步任务,待第二天moia跑批高峰完成后手工重新启动数据同步任务。
2替换步骤
2.1.1前期准备
1:修改所有节点操作系统root和gbase密码,各节点保持一致
echo root:*** | chpasswd
echo gbase:*** | chpasswd
PS:使用 base64计算密码后确认与环境变量中SSH_GBASE_PASSWD是否一致
Cexec data: ‘Echo $SSH_GBASE_PASSWD’ -- 查询环境变量密码值
python
import base64
base64.b16encode('密码') -- 计算密码转换值
2:解除su命令限制,允许gbase用户su到root
vi /etc/pam.d/su-l
注释掉
#auth required pam_wheel.so group=admin root_only
3:刷新数据库root密码
set password for root=password(‘***’);
2.1.2执行替换操作
联系业务部门停止业务,确认没有业务后开始操作,检查集群failover和锁
1:设置要替换节点的状态为UNAVAILABLE
gcadmin setnodestate ***.***.***.27 unavailable
2:清理故障节点的event
gcadmin rmdmlstorageevent 2 ***.***.***.27
gcadmin rmddlevent 2 ***.***.***.27
gcadmin rmdmlevent 2 ***.***.***.27
3:进入安装目录gcinstall,执行替换脚本
python replace.py --host=***.***.***.27 --rootPwd=*** --dbRootPwd=*** -- overwrite --sync_coordi_metadata_timeout=120 --retry_time=1
PS:不同版本参数有差异,现场版本没有--dbaUser=gbase --dbaUserPwd=*** 这两个参数
--parallel_pack=1 由于源数据可能存在差异,本次此并行打包参数去掉否则报错
dependrpms中本次缺少ncurses包直接删掉就可以了,现场由于是centos升级到麒麟V7内核并且没有yum无法直接安装,正常情况建议安装该rpm包;
4:替换节点创建tmpdir目录
该集群tmpdir参数为/***/gnode/tmpdir
mkdir /***/gnode/tmpdir
chown gbase:gbase /***/gnode/tmpdir
chmod -R 700 /***t/gnode/tmpdir
2.1.3回退方案
1:执行节点替换时,若出现宕机或掉电等情况,将导致替换失败,替换节点和源节点上可能会有残留数据。此时需要再次执行节点替换,进行残留数据清理,完成清理后方可重新进行节点替换操作。
2:在节点替换过程中,如果出现replace.py 命令被强杀或者机器掉电等现象,可能会导致集群状态处于READONLY 状态无法自行恢复正常。可以使用gcadmin switchmode normal 恢复集群状态,再一次执行replace.py 命令。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526