天天看點

Ubuntu下搭建postgresql主從伺服器(方法1)

Ubuntu下搭建postgresql主從伺服器(方法1)

安裝略

postgresql主伺服器:

$ vi /etc/postgresql/9.1/main/postgresql.conf

按a或i進入編輯模式

listen_addresses = ‘*’   (預設為注釋的,此處不改從postgresql同步時會報連接配接拒絕)

wal_level = hot_standby   (預設為注釋的)

max_wal_senders = 5  (預設為注釋,這個參數是控制主庫最多可以有多少個并發的standby資料庫)

wal_keep_segments = 32  (預設為注釋,設定足夠大的值,以防止主庫生成wal日志太快,日志還沒有來得

及傳送到standby就會循環覆寫了)

log_destination = 'stderr'

logging_collector = on

log_directory = 'pg_log'   (絕對路徑為:/var/lib/postgresql/9.1/main/)

log_file_name = 'postgresql-%y-%m-%d_%H%M%S.log'

log_rotation_size = 10MB

按Esc鍵退出編輯

:wq  (儲存并退出)

$ vi /etc/postgresql/9.1/main/pg_hba.conf

host   replication   yang   10.0.0.3/32    md5   (md5是需要密碼,trust是不需要密碼)

$ psql

postgres=# create user yang superuser password '123456';

postgres=# \q

重新開機postgresql

$ service postgresql restart

postgres=# select pg_start_backup('');   讓主資料庫處于備份狀态

可再打開個視窗

# scp -r /var/lib/postgresql/9.1/main [email protected]:/var/lib/postgresql/9.1/  (建議操作前先

将從伺服器的main的目錄改名備份下)

postgres=# select pg_stop_backup();       關閉主資料庫的備份

postgresql從伺服器:

hot_standby = on    (預設為注釋)

$ vi /var/lib/postgresql/9.1/main/recovery.conf

standby_mode = 'on'

primary_conninfo = 'host=10.0.0.2 port=5432 user=yang  password=123456'

$ rm -rf /var/lib/postgresql/9.1/main/postmaster.pid

$ netstat -ntpl | grep 5432

$ kill -9 上一步的pid

$ service postgresql start

$ cat /var/lib/postgresql/9.1/main/pg_log/postgresql-2015-01-14_180349.log   (主要是看有沒

有“LOG:  entering standby mode”和“consistent recovery state reached at 0/3000000”)

驗證:

此時在主postgresql上建立資料庫或表等,然後再到從postgresql上檢視是否已經同步

本文轉自linux部落格51CTO部落格,原文連結http://blog.51cto.com/yangzhiming/1665548如需轉載請自行聯系原作者

yangzhimingg