数据库安装
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;
博客来源: