Greenplum -- segment 死機後恢復

一、備份原理:

GPDB4.x中:是基於文件複製同步,如果個別segment宕機,整個數據庫依然可以運行,當Mirror宕機時,Primary會記錄在這個階段文件變化的數據塊,等到Mirror恢復了,再把數據塊複製過去;當Primary宕機了,那麼對於的Mirror節點就會替換Primary,記錄文件變化的數據塊,等到Primary恢復了,它就變成了Mirror,丟失的數據就會被複制過來,這裏雖然可以繼續運行,但是存在一個問題,那就是Primary和Mirror調換了,導致個別機器Primary比其他機器多,負載不均衡,最好還是把它從新恢復過正常對應關係來
Greenplum -- segment 死機後恢復

二、恢復:

2.1、使用sql查詢segment狀態:

testdb=# select * from gp_segment_configuration;
存在部分segment down機的時候,在關閉的GPDB的時候,我們可以看到
Greenplum -- segment 死機後恢復
再次啓動時也一樣,GPDB會忽略掉down機的segment,同時開啓mirror備用
Greenplum -- segment 死機後恢復

2.1、使用配置文件生成恢復文件

Greenplum -- segment 死機後恢復
可以看到生成的配置文件裏包含了需要恢復的segment節點
Greenplum -- segment 死機後恢復

2.2、使用配置文件開始恢復機器

Greenplum -- segment 死機後恢復

2.3、開啓另外一個窗口,查看恢復狀態:gpstate -m

Resynchronizing:正在恢復中,必須等待所有的都Synchronized才行
Greenplum -- segment 死機後恢復

2.4、存在:Acting as Primary,說明有將mirror當primary使用了,必須等待所有恢復完畢之後,才能調換過來,調換過程會重啓GPDB

執行命令:gprecoverseg -r
Greenplum -- segment 死機後恢復

2.5、全部交換之後,查看備用mirror的狀態 gpstate -m

Greenplum -- segment 死機後恢復

2.6、sql查詢各節點信息,都爲up狀態

Greenplum -- segment 死機後恢復

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章