节点替换步骤
1. 设置节点状态并清理 feventlog
检查节点状态,集群状态应为 normal,Coordinator 节点状态,然后正常设置被替换 节点状态为 unavailable 状态
gcadmin showcluster
gcadmin rmfeventlog 192.168.17.166
gcadmin setnodestate 192.168.17.166 unavailable
2. 编辑中间的 distribution
gcadmin getdistribution 1 distribution_info_vc1.xml
编辑distribution_info_vc1.xml文件
<?xml version='1.0' encoding="utf-8"?>
<distributions>
<distribution>
<segments>
<segment>
<primarynode ip="192.168.17.164"/>
<duplicatenodes>
<duplicatenode ip="192.168.17.165"/>
</duplicatenodes>
</segment>
<segment>
<primarynode ip="192.168.17.165"/>
</segment>
<segment>
<primarynode ip="192.168.17.164"/>
</segment>
<segment>
<primarynode ip="192.168.17.164"/>
</segment>
<segment>
<primarynode ip="192.168.17.165"/>
<duplicatenodes>
<duplicatenode ip="192.168.17.164"/>
</duplicatenodes>
</segment>
<segment>
<primarynode ip="192.168.17.165"/>
</segment>
</segments>
</distribution>
</distributions>
3. 创建中间distribution
确认配置文件调用正确
gcChangeInfo_vc1.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
<cfgFile file="distribution_info_vc1.xml"/>
</servers>
创建distribution (编号为2)
gcadmin distribution gcChangeInfo_vc1.xml
4. 初始化 hashmap
initnodedatamap;
5. 重分布
rebalance instance;
6. 检查重分布是否完成 (重分布很快,不会发生实际数据转移)
select count(1) from gclusterdb.rebalancing_status where status <> ‘COMPLETED’
7. 执行节点替换命令 (distribution 会经历2 -> 3 )
./replace.py --host=192.168.17.166 --type=data --dbaUser=gbase --dbaUserPwd=1qazse432 --generalDBUser=gbase --generalDBPwd=gbase20110531 --overwrite
8. 数据重分布
rebalance instance
9. 检查重分布是否完成 (实际迁移数据)
select count(1) from gclusterdb.rebalancing_status where status = 'COMPLETED'
10. 删除旧的 distribution
refreshnodedatamap drop 2
gcadmin rmdistribution 2
评论
热门帖子
- 12025-12-01浏览数:182763
- 22023-05-09浏览数:25057
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17528