Ubuntu下搭建postgresql主從服務器(方法2)sql
安裝略數據庫
postgresql主服務器:服務器
$ vi /home/postgresql/data/postgresql.conf併發
按a或i進入編輯模式ide
listen_addresses = ‘*’post
wal_level = hot_standby (默認爲註釋的)日誌
max_wal_senders = 5 (默認爲註釋,這個參數是控制主庫最多能夠有多少個併發的standby數據庫)postgresql
wal_keep_segments = 32 (默認爲註釋,設置足夠大的值,以防止主庫生成wal日誌太快,日誌尚未來得md5
及傳送到standby就會循環覆蓋了)同步
按Esc鍵退出編輯
:wq (保存並退出)
$ vi /home/postgresql/data/pg_hba.conf
按a或i進入編輯模式
host replication postgres 10.0.0.3/32 md5 (md5是須要密碼,trust是不須要密碼)
按Esc鍵退出編輯
:wq (保存並退出)
$ psql
postgres=# create user yang superuser password '123456';
postgres=# \q
重啓postgresql
$ netstat -ntpl | grep 5432
$ kill -9 上一步的pid
$ psql
postgres=# select pg_start_backup(''); 讓主數據庫處於備份狀態
可再打開個窗口
# scp -r /home/postgresql/data postgres@10.0.0.3:/home/postgresql/data (建議操做前先將從服務器
的data的目錄更名備份下)
postgres=# select pg_stop_backup(); 關閉主數據庫的備份
postgresql從服務器:
$ vi /home/postgresql/data/postgresql.conf
按a或i進入編輯模式
hot_standby = on (默認爲註釋)
按Esc鍵退出編輯
:wq (保存並退出)
$ vi /home/postgresql/data/recovery.conf
按a或i進入編輯模式
standby_mode = 'on'
primary_conninfo = 'host=10.0.0.2 port=5432 user=yang password=123456'
按Esc鍵退出編輯
:wq (保存並退出)
$ rm -rf /home/postgresql/data/postmaster.pid
$ netstat -ntpl | grep 5432
$ kill -9 上一步的pid
$ postgres -D /home/postgresql/data
$ cat /home/postgresql/data/pg_log/postgresql-2015-01-14_180349.log (主要是看有沒有「LOG:
entering standby mode」和「consistent recovery state reached at 0/3000000」)
驗證:
此時在主postgresql上新建數據庫或表等,而後再到從postgresql上查看是否已經同步