1. 适用场景
- 硬件故障进行过单盘替换、背板替换、内存故障等。
- 较为严重数据倾斜,清除倾斜表后对备机进行重建以便快速恢复。
2. 前提条件
- GaussDB A集群安装成功,且处于已启动状态。
- 集群处于Degraded或normal状态
- 需要重建实例配置文件conf存在并且正常,比如未发生过重组raid、磁盘损坏导致大量文件丢失情况。
3. 对系统影响
重建实例原理是从对应主实例上复制一份数据到当前实例,重建期间主要耗费主实例所在磁盘读IO与当前重建实例所在盘的写IO。
4. 实施步骤
4.1确认需要build实例路径与nodeid
步骤1 以omm用户登录GaussDB A集群的第一个正常的cn节点
步骤2 执行以下命令,启用环境变量
| source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile |
步骤3 查询需要重建实例nodeid与路径信息(以6002为例)
| cm_ctl query -Cvd|grep 6002 |
| 说明
6002实例nodeid为2,实例路径为:/srv/BigData/mppdb/data1/slave1,后续步骤均用到该信息。 1 h61 6001 /srv/BigData/mppdb/data1/master1 P Primary Normal | 2 h63 6002 /srv/BigData/mppdb/data1/slave1 S Standby Normal | 3 linux18065 3002 /srv/BigData/mppdb/data1/dummyslave1 R Secondary Normal |
4.2检查是否有残留重建任务,防止后续重建失败
步骤1在需要重建实例路径查看是否有重建残留进程
以6002为例,在该实例所在节点h63执行
| ps -ef|grep gs_ctl|grep -v grep |
查询为空则正常
步骤2 查看是否有build标志文件残留(8.0以下版本)
在6002所在节点查看该实例路径下是否有build_completed.start文件存在
| ll /srv/BigData/mppdb/data1/slave1/build_completed.start |
若执行为空则为正常情况,若该文件存在手动移走或删除该文件后。
4.3拉起重建任务
步骤1根据实例nodeid与路径信息手动停止需要重建实例
| cm_ctl stop -n 2 -D /srv/BigData/mppdb/data1/slave1 |
| 说明
cm_ctl: stop the node:2, datapath:/srv/BigData/mppdb/data1/slave1. … cm_ctl: stop instance successfully! |
步骤2 确认需要重建实例是否处于Manually stopped状态
| cm_ctl query -Cvd|grep 6002 |
| 说明
1 h61 6001 /srv/BigData/mppdb/data1/master1 P Primary Normal | 2 h63 6002 /srv/BigData/mppdb/data1/slave1 S Down Manually stopped | 3 linux18065 3002 /srv/BigData/mppdb/data1/dummyslave1 R Secondary Normal |
步骤3 在后台拉起实例重建(仅限非C80版本)
高危操作,必须联系华为工程师确认后执行!!!!!!
| nohup cm_ctl build -n 2 -D /srv/BigData/mppdb/data1/slave1 -b full -t 108000000 >> /home/omm/6002_build.log 2>&1 & |
步骤4 确认实例处于build状态即可
注:数据量较多情况下该过程会比较耗时,一直是build状态均为正常情况。
| cm_ctl query -Cvd|grep 6002 |
| 说明
1 h61 6001 /srv/BigData/mppdb/data1/master1 P Primary Normal | 2 h63 6002 /srv/BigData/mppdb/data1/slave1 S Standby Building(100%) | 3 linux18065 3002 /srv/BigData/mppdb/data1/dummyslave1 R Secondary Normal |
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316808.html