由于在使用过程中master节点异常关闭,但是Greenplum处于运行状态,重启master后发现其中两台机器的主节点segment异常,由于之前做了mirror节点,Greenplum自动将mirror节点替换为主节点使用,要想恢复之前的数据库状态,需要一下步骤:
- 生成恢复的配置文件
gprecoverseg -o ./recov
可以查看文件,查看那些节点需要恢复
- 使用配置文件恢复
(1 gprecoverseg -i ./recov
用于指定一个配置文件,该配置文件描述了需要修复的Segment和修复后的目的位置。
(2 gprecoverseg -F
gprecoverseg会将”-i”中指定的或标记”d”的实例删除,并从活着的Mirror复制一个完整一份到目标位置。
(3 gprecoverseg -r
当FTS发现有Primary宕机并进行主备切换,在gprecoverseg修复后,担当Primary的Mirror角色并不会立即切换回来,就会导致部分主机上活跃的Segment过多从而引起性能瓶颈。因此需要恢复Segment原先的角色,称为re-balance。
- 在查询资料解决过程还发现若mirror节点出现问题的恢复,再次做记录以备后用
(1 gprecoverseg -o ./recov
(2 gprecoverseg -i ./recov
(3 查看恢复状态 gpstate -m