GreenPlum数据库在gpstart过程中的错误及处理


报错信息:

ExecutionError: 'non-zero rc: 255' occured.  Details: 'ssh -o 'StrictHostKeyChecking no' sdw2 ". /usr/local/greenplum-db/./greenplum_path.sh; $GPHOME/sbin/gpoperation.py"'  cmd had rc=255 completed=True halted=False
  stdout=''
  stderr='ssh: connect to host sdw2 port 22: No route to host

 

原因分析:

任意segment宕机(网络不通状态)后,不能执行命令gpstart(也包括gpstop -r)。已segment_name=sdw2为例,因为在执行gpstart时,数据库需要执行"ssh -o 'StrictHostKeyChecking no' sdw2",此命令执行时报错“ssh: connect to host sdw2 port 22: No route to host”。

     由此展开,当任意segment处于无法访问状态时,数据库不能执行启动或重启动作,因为根本启动不了。要启动的前提的,必须有原数量的segment在线,即使没安装数据库程序。

     再展开,当master与segment同时宕机,此时无论是master或者standbymaster都无法再次启动,原因同上。唯一例外 是,master是网络故障,在不停机的情况下恢复网络连接,数据库仍可正常工作,但也不能执行gpstart,直到segment上线。

 

解决方法:

极端情况下,segment可能需要很长时间才能恢复到位。此时,为了不影响数据库使用,必须找一个机器,让它充当segment的位置,即使不安装GP服务。

     我的方法是,直接修改master上面的host文件,将故障节点的IP改为127.0.0.1,此时数据库可恢复工作(mirror替代primary),在不影响工作的情况下,恢复segment上线,再执行gprecoverseg。

     不知道我的方法是否合适,求教更好的方法,谢谢!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM