數據庫安裝
postgres數據庫安裝: Linux(CentOS 7)下安裝postgres
通過上面的連接,在主從兩台服務器上安裝好postgres數據庫
主庫配置
(1)創建具有流復制權限的用戶
CREATE ROLE replica login replication encrypted password 'replica的密碼';
(2)修改pg_hba.conf 角色授權
host replication replicator 從機器ip/24 md5
(3)修改postgresql.conf文件
# 新增或修改下列屬性設置 # 監聽所有IP listen_addresses = '*' # 開啟歸檔 archive_mode = on #歸檔命令/data/pgsql/data是你pg數據庫的data文件夾
archive_command = 'test ! -f /data/pgsql/data/pg_archive/%f && cp %p /var/lib/pgsql/12/data//pg_archive/%f'
# 9.6開始沒有hot_standby(熱備模式)
wal_level = replica
#最多有2個流復制連接
max_wal_senders = 2
wal_keep_segments = 16
#流復制超時時間
wal_sender_timeout = 60s
# 最大連接數,據說從機需要大於或等於該值
max_connections = 100
(4) 建立歸檔文件夾
mkdir /data/pgsql/data
(5)重啟postgres服務
pg_ctl -D /data/pgsql/data -l/data/pgsql/data/logfile restar
從庫配置
(1)停止從庫postgres服務
pg_ctl -D /data/pgsql/data -l/data/pgsql/data/logfile stop
(2)清空從庫數據存儲文件夾
rm -rf /data/pgsql/data/*
(3)從主服務器上copy數據到從服務器,“基礎備份”
pg_basebackup -h 主節點IP -p 5432 -U replica -Fp -Xs -Pv -R -D /data/pgsql/data/
(4)此時data目錄下會出現standby.signal文件,編輯此文件
## 加入 standby_mode = 'on'
(5)修改postgresql.conf文件
#從機信息和連接用戶 primary_conninfo = 'host=主節點IP port=5432 user=replica password=replica用戶的密碼' #說明恢復到最新狀態 recovery_target_timeline = latest #大於主節點,正式環境應當重新考慮此值的大小 max_connections = 120 #說明這台機器不僅用於數據歸檔,還可以用於數據查詢 hot_standby = on #流備份的最大延遲時間 max_standby_streaming_delay = 30s #向主機匯報本機狀態的間隔時間 wal_receiver_status_interval = 10s #r出現錯誤復制,向主機反饋 hot_standby_feedback = on
(6)重啟從庫
pg_ctl -D /data/pgsql/data/ -l /data/pgsql/data/logfile start
驗證主從搭建是否成功
(1)連接主庫執行
select client_addr,sync_state from pg_stat_replication;
博客來源: