通过
=#PGOPTIONS="-c gp_session_role=utility" psql --进入utility
=#set allow_system_table_mods='dml';
=#delete from gp_segment_configuration where contentin(2);
=#select * from gp_segment_configuration order by dbid;
等一系列命令删除segmen节点后
gpstart -a 数据库启动失败
报错:gpadmin-[CRITICAL]:-gpstart failed. (Reason=''NoneType' object has no attribute 'valid'') exiting
官网也没有提供segment删除的说明,求大神帮忙
今天刚解决了这个问题,为了前赴后继的小伙伴们,这里贴一下解决方案:
在gp_segment_configuration信息表中的content字段必须是连续的,可能你在删除segment信息的时候删除了一个中间的segment,导致content不连续,所以gpadmin在start集群时获取segment的配置信息并初始化segment时出现了空segment的情况(这个你可以在gpstart脚本中打印self.gparray看看),导致启动失败!
segment的初始化逻辑位于$GP_HOME/lib/python/gppylib/gparray.py中
太冒险了,不建议删除节点,如果想减少节点,新建一个集群吧,导出再导入,使用GP自带的gptransfer命令
官方没有提供删除方法,不支持也不建议删除节点。网上有朋友分享而且也做成功了,参考:http://blog.csdn.net/u011478909/article/details/52692280,看一下中间步骤有没有什么问题,如果还有问题可以继续交流。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。