1.在master和standby上安装PG、repmgr,创建postgres角色(rsync
is available and passwordless SSH connections are possible between both servers)
【 [postgres@node1 ~]$ ssh-keygen -t rsa
[postgres@node1 ~]$ ssh-copy-id -i .ssh/id_rsa.pub postgres@node2
[postgres@node1 ~]$ ssh node2 date
Tue Apr 15 01:17:20 CST 2014
[postgres@node2 ~]$ ssh-keygen -t rsa
[postgres@node2 ~]$ ssh-copy-id -i .ssh/id_rsa.pub postgres@node1
[postgres@node2 ~]$ ssh node1 date
Tue Apr 15 01:18:13 CST 2014
】;
2.master初始化数据库,创建配置文件postgresql.replication.conf:
max_wal_senders = 10
wal_level = 'hot_standby'hot_standby = onarchive_mode = onarchive_command = '/bin/true'# wal_keep_segments = 5000,并修改postgresql.conf: include ‘postgresql.replication.conf’3.master创建用户、数据库:createuser -s repmgr | createdb repmgr -O repmgr
4.master配置pg_hba.conf:
host replication repmgr 127.0.0.1/32 trust
host replication repmgr 192.168.98.0/24 trusthost repmgr repmgr 192.168.98.0/24 trust5.master创建repmgr.conf配置文件:
cluster=test 【所有节点保持一致】node=1node_name=node1conninfo='host=repmgr_node1 user=repmgr dbname=repmgr' 6.master修改repmgr的搜索路径:ALTER USER repmgr SET search_path TO repmgr_test, "$user", public; 7.master节点初始化master:repmgr -f repmgr.conf master register 8.standby节点创建repmgr.conf:
cluster=testnode=2node_name=node2conninfo='host=repmgr_node2 user=repmgr dbname=repmgr' 9.克隆standby:repmgr -h 192.168.98.55 -U repmgr -d repmgr -D /home/postgres/PG-9.6.1/ -f /home/postgres/repmgr.conf standby clone 10.调整配置文件,启动standby数据库:pg_ctl -D /home/postgres/PG-9.6.1/ start 11.注册standy数据库:repmgr -f repmgr.conf standby register