由于昨晚扩容节点异常,报错是说内存不足,当时没太在意就放之不管,而后今早过来发现很多mirror的节点时Failed状态。
gpstate -m 此命令选项是查看全部的mirror节点是否正常
发现有Failed状态,然后使用gprecoverseg的命令修复他
[gpadmin@gpceshi1 ~]$ gprecoverseg -o ./hiya 生成恢复的配置文件 [gpadmin@gpceshi1 ~]$ cat hiya filespaceOrder= gpceshi2:40000:/ssd_data/gpdata/primary/gpseg1 gpceshi2:50001:/ssd_data/gpdata/mirror/gpseg2 gpceshi2:40001:/ssd_data/gpdata/primary/gpseg3 gpceshi2:50002:/ssd_data/gpdata/mirror/gpseg4 gpceshi2:50008:/ssd_data/gpdata/mirror/gpseg10 gpceshi2:50009:/ssd_data/gpdata/mirror/gpseg11 gpceshi2:50010:/ssd_data/gpdata/mirror/gpseg12 gpceshi2:50011:/ssd_data/gpdata/mirror/gpseg13 可以从配置文件里看到有哪些节点需要恢复,顺便跟gpstate -m的回显信息对比一下是否完整
使用-i选项读取配置文件进行恢复
[gpadmin@gpceshi1 ~]$ gprecoverseg -i hiya 恢复完成之后再次查看mirror节点状态 [gpadmin@gpceshi1 ~]$ gpstate -m
最后正常之后进行角色对调,在修复后,之前角色变换的mirror不会立即切换过来,这样会导致一些主机上工作的segment节点过多引起性能瓶颈问题,所以需要恢复segment原先的角色。
[gpadmin@gpceshi1 ~]$ gprecoverseg -r