Greenplum Segment的檢測機制

如果FTS無法建立連接或者在超時後沒有收到一個回覆,則會重試。如果失敗的探測次數超過配置的最大次數,FTS會探測該segment的鏡像是否正常,然後更新gp_segment_configuration表標記primary segment爲down,並且設置該鏡像作爲primary segment運行。FTS會在gp_configuration_history中記錄該操作。

當只有一個活動的primary segment並且相應的鏡像宕機時,該primary segment會進入到"Change Tracking Mode"。在這種模式中,對該Segment的操作會被記錄,這樣可以同步鏡像而無需把primary segment的完整數據複製給mirror segment。

gprecoverseg命令可以恢復宕機的鏡像。
1、默認情況下,gprecoverseg執行一次增量恢復,把該鏡像置於resync模式中,然後開始把primary segment記錄的更改在鏡像上進行重放。
2、如果不能完成增量恢復,可以重新以-F選項運行gprecoverseg來執行完全恢復。這種操作會導致primary segment把所有的數據都複製給鏡像。

在gp_segment_configuration表中,每個Segment可以有三種模式:
1、change tracking
2、resync
3、synced

同時還可以有"up"或"down"兩種狀態。

gp_segment_configuration表還有兩個列role和preferred_role。

role:表示該segment數據庫的當前角色
preferred_role:表示該segment的原始角色。

在集羣正常時,所有segment的role和preferred_role都是匹配的。當它們不匹配時,每臺硬件主機上活動的primary segment數量發生傾斜。爲了重新平衡該集羣並且讓所有的segment回到它們的首選角色,可以用-r選項運行gprecoverseg命令。

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