1. 程式人生 > >PostgreSQL 9.4 流複製環境搭建

PostgreSQL 9.4 流複製環境搭建

此方法並不完全屬於熱備,因為主機宕掉備機無法自動替換,備機只是起到資料自動備份的功能,如果想實現自動備份需要使用pgpool 環境介紹
IP 角色
192.169.77.211
192.169.77.215
首先、務必保證兩臺都安裝有相同版本的Postgresql資料庫,兩個機器的postgres使用者做ssh免密碼 1、兩臺都安裝rsync yum install rsync 2、修改主機的postgresql.conf  在postgres資料庫的data目錄中 listen_addresses = '*'  wal_level = hot_standby  archive_mode = on  archive_command = ' rsync -av --exclude postmaster.pid --exclude postgresql.conf --exclude pg_ident.conf --exclude pg_hba.conf /var/lib/pgsql/9.4/data/*  192.169.77.215:/var/lib/pgsql/9.4/data/'  archive_timeout = 300 --這個是同步重新整理時間單位是秒 意思是300秒同步一次 max_wal_senders = 1  wal_keep_segments = 300    3、修改備機的postgresql.conf  在postgres資料庫的data目錄中 listen_addresses = '*'  hot_standby = on  4、備機在data目錄建立recovery.conf檔案,內容為: restore_command = 'cp /var/lib/pgsql/archive/%f %p'  standby_mode = 'on'   primary_conninfo = 'host=192.169.77.211 port=5432 user=postgres password=postgres' 5、備機建立archive目錄,並授權  # mkdir /var/lib/pgsql/archive  # chmod 777 /var/lib/pgsql/archive/ 6、修改pg_hba.conf 檔案讓兩個機器都可以免密碼 7、主機啟動資料庫然後進入psql執行 select pg_start_backup('base'); 然後在退出psql 執行  rsync -av --exclude postmaster.pid --exclude postgresql.conf --exclude pg_ident.conf --exclude pg_hba.conf /var/lib/pgsql/9.4/data/*  192.169.77.215:/var/lib/pgsql/9.4/data/ 再回到psql 執行select pg_stop_backup();  看提示按Ctrl+C終止即可 8、備機啟動資料庫 此時可以看到同步過來的資料,以後會每300秒同步一次