greenplum4.X中结点失败后的处理

post by  osdba / 2011-8-13 22:05 Saturday

情况一:

当一台segment机器坏了,然后机器又恢复了,或某一个segment数据库停了

只需要运行gprecoverseg,就可以把segment恢复过来:

gprecoverseg

运行gprecoverseg之后,需要运行gpstate -m查看同步是否都完成了。

如果一个primary的segment失败后,mirror segment会升级成primary segment,然后集群可以正常运行。原先失败的primary segment的机器恢复后,使用gprecoverseg恢复这个segment后,这个原先的primary segment会变成mirror segment,如果想让原先的失败的primary segment,在恢复后仍然能成为primary segment,则需要重启集群。

具体方法为:

1. 运行gpstate -m 确保所有的mirror segment都与primary segment同步了:

$ gpstate -m

如果还没有同步完成,请等待到同步完成。

2. 重启greenplum

$ gpstop -r

 
情况二:
如果primary segment和mirror segment都同时失败了,这时集群变的不可用。
恢复的步骤为:
1.  重启greenplum集群
gpstop -r 
 
2. 运行gprecoverseg恢复数据库
gprecoverseg
 
3. 使用 gpstate -m 查看恢复状态,如果有segment一直处于Change Tracking mode,则运行一个全拷贝的恢复:
gprecoverseg -F
 
情况三:
如果集群没有配置mirror,则只有任意一个segment失败后,集群就会变成不可用。
这时只能等机器恢复后重启集群:
gpstop -r
 
情况四:
当一台机器完全坏了,磁盘上的数据也完全丢了,这时就需要重建一个新的segment了。
使用一台新的机器,上面把greenplum装好,然后使用下面的命令:
gprecoverseg -i recover_config_file
 
recover_config_file文件内容如下:
filespaceOrder=
sdw5-2:50002:/gpdata/gpseg2 sdw9-2:50002:53002:/gpdata/gpseg2
sdw5-2:50002是原先失败的segment,sdw9-2:50002是新主机。
 
 
情况五:
当master主机失败了。
这时我们可以激活standby master。
在standby master主机上执行:
gpactivatestandby -d /data/master/gpseg-1
 
一旦standby master激活后,它就变成primary master了,如果想在把当前standby master变成primary master后,再把另一台主机加成standby master,则可以用下面的命令:
gpactivatestandby -d /data/master/gpseg-1 -c new_standby_hostname
 
当然,当激活standby master后,也可以以后再加新的standby master。这与当没有standby master时,加一个standby master的操作一样,都是运行:
gpinitstandby -s new_standby_master_hostname
 
 
最后用gpstate -f检查集群的状态。
psql dbname -c 'SELECT * FROM gp_master_mirroring;'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值