PostgreSQL的流複製配置(基於事務日誌傳送)

  自PostgreSQL 9.0開始,添加了流複製(Streaming Repulication)。流複製源於pg早期的「同步日誌傳送複製」(Synchronous Log Shipping Repulication)--一個高可用的(HA)解決方案。html

  流複製是基於事務日誌傳送的。熱備份服務器能夠經過讀取WAL記錄流來保持數據庫的當前狀態。 若是主服務器失效,那麼熱備份服務器將包含幾乎全部主服務器的數據, 並能夠迅速的將本身切換爲主服務器。這能夠是同步的或者異步的, 而且只能在整個數據庫服務器上實施。 sql

環境:

centos 32bit虛擬機兩臺;shell

安裝配置過程:

說明:Primary_IP 表示主服務器IP地址數據庫

    Standby_IP 表示備用服務器IP地址centos

1.準備主、備數據庫

主、備庫數據庫版本:PostgreSQL9.2.13
服務器

在主服務器中安裝PostgreSQL並初始化一個數據庫集合(備用服務器同理,能夠不初始化數據庫):異步

cd ./root/Desktop (打開安裝文件所在目錄)
./configure --prefix=/opt/pgsql92
gmake -world
gmake install

2.配置主庫

 在主庫中配置../data/postgresql.confpost

 vi postgresql.confspa

  listen_address = '*'
  wal_level = hot_standby
  max_wal_zenders = 30 (根據實際狀況本身設置便可)
  archive_mode = on
  archive_command = 'cd'

 在主庫中配置../data/pg_hba_conf文件中的參數
.net

 vi pg_hba.conf

 host replication all Standby_IP/32 trust   #用戶可設置爲all或postgres

3.爲主庫作data目錄基礎備份

 啓動主服務器中的PostgreSQL數據庫,執行基礎備份:

 ../bin/psql -U posgres

  postgres#select pg_start_backup('hot_backup'); (可以使用任意符號作備份標記)
  postgres#\q

 tar -zcvf data.tar.gz data        

 ../bin/psql -U posgres

 postgres# select pg_stop_backup();

 將基礎備份拷貝到備用服務器的數據庫安裝目錄下:

 scp data.tar.gz  Standby_IP:/opt/pgsql922

 而後解壓,做爲備庫的data目錄。

4.配置備庫

 在備用服務器的PostgreSQL中配置postgresql.conf文件中的參數

 vi postgresql.conf

 hot_standby = on

 在備用服務器PostgreSQL的data目錄下創建recovery.conf文件

 vi recovery.conf

 standby_mode = true
 primary_conninfo = 'host=Primay_IP  port=5432 user=postgres password=password'

5.重啓服務

 至此主、備庫安裝配置完畢,重啓主庫,而後重啓備庫。    

 此時備庫中的數據與主庫中一致,正常狀況下,此後對主庫修改的內容將同步到備庫。

注意:

1.必定要確保修改後的參數更新完畢,例如能夠經過postgres#show wal_level來查看wal_level的參數。若是參數沒有更新則服務器沒法運行,因此必定要保證參數更新,方法是:關閉全部postgres服務後從新啓動。     2.運行PostgreSQL數據庫後,在priamy的任何修該都會同步到standby中,standby不能對數據庫作修改只能查看。

3.必定要把防火牆關閉,不然主-備服務器沒法得到鏈接,會出現以下問題:               

 FATAL: could not connect to the primary server: could not connect to server: No route to host  Is the server running on host "192.168.100.112" and accepting  TCP/IP connections on port 5432?

 關閉防火牆的方法,請參考http://my.oschina.net/liuyuanyuangogo/blog/506221


參考資料

不一樣方案比較:http://www.postgresql.org/docs/9.2/static/different-replication-solutions.html

流複製:http://www.postgresql.org/docs/9.2/static/warm-standby.html#STREAMING-REPLICATION

相關文章
相關標籤/搜索