測(cè)試環(huán)境:
????????PC1:192.168.13.129(主庫(kù))
????????PC2:192.168.13.130(從庫(kù))
1塘雳、兩臺(tái)服務(wù)器分別安裝PostgreSQL(版本最好一致)
2耕赘、主庫(kù)配置
#創(chuàng)建復(fù)制數(shù)據(jù)庫(kù)用戶
CREATE ROLE replica login replication encrypted password '123456'
#修改配置文件pg_hba.conf,增加replica用戶爽茴,進(jìn)行同步
host replication replica 192.168.13.130/24 md5
#修改配置文件postgresql.conf,修改以下幾個(gè)地方
wal_level = hot_standby # 這個(gè)是設(shè)置主為wal的主機(jī)
max_wal_senders = 32 # 這個(gè)設(shè)置了可以最多有幾個(gè)流復(fù)制連接寒矿,差不多有幾個(gè)從蹋半,就設(shè)置幾個(gè)
wal_keep_segments = 256 # 設(shè)置流復(fù)制保留的最多的xlog數(shù)目
wal_sender_timeout = 60s # 設(shè)置流復(fù)制主機(jī)發(fā)送數(shù)據(jù)的超時(shí)時(shí)間
max_connections = 100 # 這個(gè)設(shè)置要注意下鹦聪,從庫(kù)的max_connections必須要大于主庫(kù)的
#重啟主庫(kù)數(shù)據(jù)庫(kù)
systemctl restart postgresql-9.6.service
3账阻、從庫(kù)配置
#登錄postgre用戶,測(cè)試連接主庫(kù)數(shù)據(jù)庫(kù)是否正常
psql -h 192.168.13.129
#若鏈接正常泽本,刪除從庫(kù)data目錄下文件
rm -rf data/*
#通過pg_basebackup命令行在從庫(kù)上生成基礎(chǔ)備份
pg_basebackup -h 192.168.111.101 -U repl -F p -x -P -R -D /usr/local/postgresql/data/ -l replbackup20161122
#參數(shù)說明:
# -h:指定連接的數(shù)據(jù)庫(kù)的主機(jī)名或IP地址淘太,這里就是主庫(kù)的ip
# -U:指定連接的用戶名,此處是我們剛才創(chuàng)建的專門負(fù)責(zé)流復(fù)制的repl用戶
# -F:指定了輸出的格式规丽,支持p(原樣輸出)或者t(tar格式輸出)
# -x:表示備份開始后蒲牧,啟動(dòng)另一個(gè)流復(fù)制連接從主庫(kù)接收WAL日志
# -P:表示允許在備份過程中實(shí)時(shí)的打印備份的進(jìn)度
# -R:表示會(huì)在備份結(jié)束后自動(dòng)生成recovery.conf文件,這樣也就避免了手動(dòng)創(chuàng)建
# -D:指定把備份寫到哪個(gè)目錄
# -l:表示指定一個(gè)備份的標(biāo)識(shí)赌莺,運(yùn)行命令后看到如下進(jìn)度提示就說明生成基礎(chǔ)備份成功
#修改從庫(kù)數(shù)據(jù)目錄下的postgresql.conf文件冰抢,將hot_standby改為啟用狀態(tài)
hot_standby=on
#重啟從數(shù)據(jù)庫(kù)
4、測(cè)試艘狭。主庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)挎扰,表翠订,寫入數(shù)據(jù),從庫(kù)進(jìn)行查看遵倦。