標籤:postgresql 雙機熱備 流複製 9.3.9
系統內容:centos6.5
資料庫版本: postgres9.3.9
虛擬機器2台:
Master:10.0.2.160
Slave:10.0.2.69
資料存放區位置:/usr/local/pgsql/data/
- 安裝pgsql資料庫
安裝過程可參考我上一篇部落格:http://blog.51cto.com/13632960/2117902兩台機器都需要安裝完成,我在做熱備的時候,Master資料庫開啟,Slave關閉。
- 建立流複製使用者
Master端進入資料庫並執行:CREATE USER repuser?replication PASSWORD ‘repuser‘;?
- 配置Master端的訪問檔案pg_hba.conf?
vim /usr/local/pgsql/data/pg_hba.conf 在最後添加:host replication repuser?10.0.2.69/16 md5 #md5為串連方式 你們也可以選擇其他的
- 配置Master端設定檔 postgresql.conf
在修改之前先建立一個檔案夾用于歸檔檔案存放:mkdir /usr/local/pgsql/data/archive
vim /usr/local/pgsql/data/postgresql.conf
修改下列項:max_wal_senders = 1?wal_level = hot_standbyarchive_mode = on?archive_command = ‘cp %p /usr/local/pgsql/data/archive/%f‘‘hot_standby = onwal_keep_segments = 64
注釋: max_wal_senders是Slave庫的節點數,有多少個slave庫就設多少,? ? ? wal_level是write ahead log參數值,設定流複製務必將此值更新成hot_standby? ? ?wal_keep_segments預設值是16,是PG_XLOG下的記錄檔數相關參數?? ? archive也可以選擇關閉,歸檔是定時恢複用的,流複製不是必須的
- 主庫備份——Master端
開啟檔案備份:/usr/local/pgsql/bin/psql psql (9.3.9)Type "help" for help.postgres=# select pg_start_backup(‘backup_1‘);
- 打包Master端/usr/local/pgsql/data/目錄,並發送到Slave伺服器上,排除pg_xlog目錄內容!!!!!
cd /usr/local/pgsql/tar -czvf? data.tar.gz data--exclude=data/pg_xlog?Slave端如果已經安裝了postgres資料庫,資料目錄名稱一樣的話,可以先停掉備機資料庫,更改資料目錄名稱mv data data.old遠程拷貝至slave端並在備機端解壓scp data.tar.gz [email protected]:/usr/local/pgsql/拷貝完成後,進入資料庫關閉備份:select pg_stop_backup(),current_timestamp;
- Slave端解壓並修改相關設定檔
cd /usr/local/pgsqltar -zxvf data.tar.gzcd /usr/local/pgsql/datamkdir pg_xlog vim /usr/local/pgsql/data/postgresql.conf修改:hot_standby = on
- 備機需要配置recovery.conf檔案,將share目錄中的recovery.conf.sample拷貝並改名。
cp /usr/local/pgsql/share/recovery.conf.sample /usr/local/pgsql/data/recovery.conf複製完成後修改如下內容:?standby_mode = ‘on‘primary_conninfo =‘host=10.0.2.69??port=5432 user=repuser password=repuser keepalives_idle=60‘
- 啟動Slave庫
正常啟動備庫,有異常可以看log/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data >>logfile 2>&1
- 查看主庫及從庫啟動狀態
Master:
Slave:
- 至此postgresql流複製熱備方案部署完成,可以通過navicat或者命令列進行資料插入或者建表測試功能可用性。
【Postgresql】postgresql9.3.9版本基於流複製方式雙機熱備方案