1.基础环境准备
10.0.0.14 Master
10.0.0.15 Standby
2.Master 节点配置
#创建复制的用户并授权
[postgres@master ~]$ psql
postgres=#create role repluser with replication login password '123456';
#修改pg_hba.conf进行授权
[postgres@master ~]$vi /pgsql/data/pg_hba.conf
host replication repluser 0.0.0.0/0 md5
[postgres@master ~]$pg_ctl restart -D /pgsql/data
3.Standby 节点配置
#清空数据和归档
[postgres@standby ~]$ pg_ctl stop -D $PGDATA
[postgres@standby ~]$ rm -rf /pgsql/data/*
[postgres@standby ~]$ rm -rf /archive/*
[postgres@standby ~]$ rm -rf /pgsql/backup/*
#备份主库数据到备库
[postgres@standby ~]$ pg_basebackup -D /pgsql/backup/ -Ft -Pv -Urepluser -h 10.0.0.14 -p 5432 -R
#还原备份的数据,实现初始的主从数据同步
[postgres@standby ~]$ tar xf /pgsql/backup/base.tar -C /pgsql/data
[postgres@standby ~]$ tar xf /pgsql/backup/pg_wal.tar -C /archive/
#方法1
#修改postgresql.conf文件
[postgres@standby ~]$ vi /pgsql/data/postgresql.conf
#添加下面两行
primary_conninfo = 'host=10.0.0.101 port=5432 user=repluser password=123456'
restore_command = 'cp /archive/%f %p' #此项可不配置
[postgres@standby ~]$ pg_ctl -D /pgsql/data start
4.监控同步状态
主从已成功同步
在主库查看状态
[root@master ~]#pg_controldata
postgres=#select pid,state,client_addr,sync_priority,sync_state from pg_stat_replication;
#下面只在主节点查看同步模式,注意:如果无从节点连接,将无任何显示信息
postgres=# SELECT pg_current_wal_insert_lsn(),* from pg_stat_replication;
#服务器查看数据库是否为备库,f表主库 t表示为备库
postgres=# select * from pg_is_in_recovery();
在主库新增数据可以在从库查看