前置工作
主库ip:18.0.145.8 从库ip:18.0.145.4
主库配置
编辑 vi /var/lib/pgsql/pg_hba.conf,允许18.0.145.4从节点连入
host replication replica 18.0.145.4/32 md5
编辑 vi /var/lib/pgsql/postgresql.conf
# 绑定监听所有IP
listen_addresses = '*'
# 允许归档
archive_mode = on
# 通过命令指定归档路径/
archive_command = 'cp %p /home/data/pg/pg_archive/%f'
# 写入WAL的级别(minimal:不能通过基础备份和wal日志恢复数据库; replica: 支持wal归档和复制; logical: 在replica级别添加了逻辑解码所需的信息)
wal_level = logical
# 允许最多的流复制连接发送数量, 根据从节点数量来设定
max_wal_senders = 32
# 设置流复制保留的最多的xlog数目
wal_keep_segments = 256
# 设置流复制发送数据的超时时间
wal_sender_timeout = 60s
# 最大连接数量,根据从节点与客户端连接数来设定
max_connections = 1000
新建主从同步用户
CREATE ROLE replica login replication encrypted password 'replica';
重启服务
systemctl restart postgresql.service
从库配置
进入从库的数据目录并清空目录内容
su - postgres
cd /var/lib/pgsql
rm -rf *
从主库复制数据到从库
pg_basebackup -D 数据目录 -Fp -Xstream -R -c fast -v -P -h 18.0.145.8 -U replica -W
完成后重启pgsql
systemctl restart postgresql.service