主:192.168.11.186
從:192.168.11.187
1、下載包並在主從兩台主機進行安裝
下載鏈接:
https://get.enterprisedb.com/postgresql/postgresql-11.7-4-windows-x64.exe
安裝過程配置數據庫管理員賬戶密碼
Pgdata!
2、主庫配置
配置pg_hba.conf文件,配置文件在安裝設置的data目錄下
在文件末尾增加一行,增加replica的用戶,來進行數據庫同步操作。
host replication all 192.168.11.187/32 md5
創建replica相關權限
CREATE ROLE replica login replication encrypted password 'replica'
配置postgresql.conf文件
wal_level = hot_standby
max_wal_senders = 32
wal_keep_segments = 256
wal_sender_timeout = 60s
max_connections = 100
重啟數據庫服務
pg_ctl restart -D "E:\pgdata"
3、從庫配置
從庫執行命令將主庫data文件夾內容通過命令拷貝到從庫
pg_basebackup -F p --progress -D "E:\pgdata2" -h 192.168.11.186 -p 5432 -U replica --password
因為我安裝配置的data目錄是E:\pgdata , 所以上邊的命令中目錄是不一樣的。
停止數據庫服務,刪除 E:\pgdata,然后把 E:\pgdata2 改為 E:\pgdata 。
復制 share 下的recovery.conf.sample 到data下,重命名為recovery.conf,修改配置
standby_mode = on
primary_conninfo = 'host=192.168.11.186 port=5432 user=replica password=replica'
recovery_target_timeline = 'latest'
配置postgresql.conf
max_connections = 1000
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 1s
hot_standby_feedback = on
4、啟動從庫
pg_ctl start -D "E:\pgdata"
啟動報錯:
無法打開控制文件 "global/pg_control" ermission denied
參考;
http://www.vsbclub.com/info/1024/1678.htm
5、主庫確認
主數據庫的pgadmin中可以執行
select client_addr,sync_state from pg_stat_replication;
參考:
https://blog.csdn.net/A_ccelerator/article/details/105531095
https://get.enterprisedb.com/postgresql/postgresql-11.7-4-windows-x64.exe