Greenplum -- segment 宕機後恢復
阿新 • • 發佈:2019-01-07
一、備份原理:
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