一、備份原理:
GPDB4.x中:是基於文件複製同步,如果個別segment宕機,整個數據庫依然可以運行,當Mirror宕機時,Primary會記錄在這個階段文件變化的數據塊,等到Mirror恢復了,再把數據塊複製過去;當Primary宕機了,那麼對於的Mirror節點就會替換Primary,記錄文件變化的數據塊,等到Primary恢復了,它就變成了Mirror,丟失的數據就會被複制過來,這裏雖然可以繼續運行,但是存在一個問題,那就是Primary和Mirror調換了,導致個別機器Primary比其他機器多,負載不均衡,最好還是把它從新恢復過正常對應關係來
二、恢復:
2.1、使用sql查詢segment狀態:
testdb=# select * from gp_segment_configuration;
存在部分segment down機的時候,在關閉的GPDB的時候,我們可以看到
再次啓動時也一樣,GPDB會忽略掉down機的segment,同時開啓mirror備用
2.1、使用配置文件生成恢復文件
可以看到生成的配置文件裏包含了需要恢復的segment節點
2.2、使用配置文件開始恢復機器
2.3、開啓另外一個窗口,查看恢復狀態:gpstate -m
Resynchronizing:正在恢復中,必須等待所有的都Synchronized才行
2.4、存在:Acting as Primary,說明有將mirror當primary使用了,必須等待所有恢復完畢之後,才能調換過來,調換過程會重啓GPDB
執行命令:gprecoverseg -r