GP段鏡像概覽

1.簡介

當開啓GP高可用時,會有兩種類型的段實例類型:主和鏡像(primary和mirror)。每個主段有一個相應的鏡像段。主段實例接收主節點(master)發送的請求,修改段數據並將這些改變複製到相應的鏡像段。如果GP發現主段失敗或變的不可用,其將把鏡像段改爲主段,並將不可用的主段變爲鏡像段。失敗發生時正在進行的事務將被回滾和必須重新開始。接着,管理員必須恢復鏡像段,並允許鏡像段和目前的主段進行同步,接着,將主段和鏡像段進行角色互換,以便它們各自處於優選角色。

如果段鏡像未被開啓,如果一個段實例失敗,GP將關閉整個系統。GP數據庫可用前管理員必須手工恢復所有失敗的段。

當開啓現存系統的段鏡像時,獲取主段的快照期間,主段實例將繼續爲用戶提供服務。當獲取完快照並被部署與鏡像段實例時,也將記錄主段上發生的改變。快照部署於鏡像段後,鏡像段通過基於預寫日誌(Write-Ahead Logging (WAL))的流複製來同步數據並保持最新。GP數據庫WAL複製採用walsender和walreceiver複製進程。Walsender進程是主段進程。Walreceiver爲鏡像段進程。

數據庫發生改變時,捕獲改變的日誌流向鏡像段以保持其與相應的主段同步。WAL複製期間,數據庫改變被應用前寫入日誌,以確保進行中操作的數據完整性。

當GP探測到一個主段失敗後,WAL複製進程停止,且鏡像段自動啓動爲活動的主段。如果主段活動期間鏡像段失敗或變得不可訪問,主段會將數據庫變化記錄到日誌中,當鏡像段恢復後將應用這些日誌。

這些GP數據庫系統目錄表包含鏡像和複製信息:

1)系統目錄表gp_segment_configuration包含主段和鏡像段以及主節點和備節點實例的目前配置和狀態。

2)系統目錄視圖gp_stat_replication包含用於GP數據庫主節點和段鏡像的walsender進程的複製統計信息。

2.配置

鏡像段實例能放在集羣中不同配置的主機上。作爲最好的實踐,主段和相應的鏡像段應該位於不同的主機上。每個主機必須有相同數目的主段和鏡像段。當用GP數據庫工具gpinitsystem或gpaddmirrors創建段鏡像時,你可以指定段鏡像的配置,組鏡像(group mirroring,默認)或擴展鏡像(spread mirroring)。通過gpaddmirrors,你能用gpaddmirrors配置文件並在命令行指定該文件來創建定製鏡像配置。

組鏡像爲默認鏡像配置。每個主機主段的鏡像段放於其他主機上。如果單個主機失敗,作爲失敗主機備份的主機上的活動主段數目將會加倍。具體如圖1所示。

圖1. GP數據庫組段鏡像配置

擴展鏡像將每個主機上的鏡像擴展到多個主機,以便如果任何單個主機失敗,其他主機都不會將多於1個鏡像提升爲活動主段。擴展鏡像僅可能用於主機多於每個主機上段的場景。圖2對擴展鏡像配置中鏡像的放置進行了說明。

 

圖2. GP數據庫中擴展段鏡像配置

 

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