开发者社区> 问答> 正文

greenplum删除segment节点后启动集群失败

通过
=#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删除的说明,求大神帮忙

展开
收起
qinzl_1 2017-08-12 14:04:17 9361 0
3 条回答
写回答
取消 提交回答
  • 今天刚解决了这个问题,为了前赴后继的小伙伴们,这里贴一下解决方案:
    在gp_segment_configuration信息表中的content字段必须是连续的,可能你在删除segment信息的时候删除了一个中间的segment,导致content不连续,所以gpadmin在start集群时获取segment的配置信息并初始化segment时出现了空segment的情况(这个你可以在gpstart脚本中打印self.gparray看看),导致启动失败!
    segment的初始化逻辑位于$GP_HOME/lib/python/gppylib/gparray.py中__15240490094194

    2019-07-17 21:29:11
    赞同 1 展开评论 打赏
  • 阿里云PostgreSQL和Greenplum内核开发

    太冒险了,不建议删除节点,如果想减少节点,新建一个集群吧,导出再导入,使用GP自带的gptransfer命令

    2019-07-17 21:29:11
    赞同 展开评论 打赏
  • Greenplum,Deepgreen

    官方没有提供删除方法,不支持也不建议删除节点。网上有朋友分享而且也做成功了,参考:http://blog.csdn.net/u011478909/article/details/52692280,看一下中间步骤有没有什么问题,如果还有问题可以继续交流。

    2019-07-17 21:29:11
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PostgreSQL复制原理及高可用集群 立即下载
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
PostgresChina2018_陈河堆_PostgreSQL基于PaaS平台的高可用集群方案V3 立即下载