Linux之postgres数据库主从搭建


数据库安装

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;

 

 博客来源:

https://www.cnblogs.com/VicLiu/p/12993542.html 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM