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