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

原文:http://blog.osdba.net/?post=58

情况一:

当一台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;'

 

[gpadmin@mdw ~]$ gpstate -f
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:-Starting gpstate with args: -f
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.2.2.0 build 6'
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.2.2.0 build 6) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Jul  1 2012 11:15:14'
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:-Standby master instance not configured
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:--------------------------------------------------------------
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:--gp_master_mirroring table
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:--------------------------------------------------------------
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:--Summary state: Not Configured
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:--Detail state:
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:--Log time:
20120927:23:42:19:001333 gpstate:mdw:gpadmin-[INFO]:--------------------------------------------------------------
[gpadmin@mdw ~]$

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值