close

從PostgreSQL 9版本開始,加入了新的replication方式 ----- Streaming Replication。
它和原本的Warm Standby模式有些類似,但是同步的速度更快,稱為Hot Standby。 

原本的Warm Standby模式中,Standby主機都是等待Primary主機傳送WAL過來,
然後進行Recovery,也就是說,要等待Primary每次寫滿了一個16MB的WAL檔後,
才能進行一次log shipping及restore/recovery。
當然,在Primary主機上設定archive_timeout,可以縮短每次WAL傳送的時間間隔,
這又會造成傳送太多沒寫滿的WAL(每個檔還是16MB那麼大) ,對於網路流量與
WAL歸檔空間來說十分浪費。

在Streming Replication模式下,Standby主機會先檢查歸檔目錄中的WAL檔,取得
後進行Recovery,當歸檔目錄中所有的WAL都已經進行過回復之後,
Standby會透過recovery.conf中所設定的primary_conninfo資訊,主動連線到Primary
主機取得WAL stream,只要Primary上有異動,幾秒鐘內就能夠被Standby取得並進行
回復。
因此,Primary上的異動,最慢幾秒鐘內就能夠在Standby上看得到。

最重要的是,原本的Warm Standby模式下,Standby主機是無法連線使用的,只能在
Primary損壞時作為頂替之用;在Streaming Replication模式下,Standby主機可以作
為read-only之功用,不用將一台主機閒置在那。 

底下,是針對目前為止所了解的Streaming Replication作業模式所繪的示意圖,
streaming replication 1  

 

streaming replication 2 

目前,對於Streaming Replication很多原理、細節還不太了解,若有更進一步了解,再補充或修正內容。

arrow
arrow
    全站熱搜

    來自大海的心 發表在 痞客邦 留言(0) 人氣()