postgresql12主从异步流复制搭建

本文默认主节点和从节点的postgresql数据库已经安装好

注:postgresql11版本和12版本的主从搭建方式不一样,本文只介绍12版本的搭建方式

主机:172.16.95.22

从机:172.16.95.135


主节点配置

修改postgresql.conf

wal_level = replica  # 这个是设置主为wal的主机
max_wal_senders = 5 # 这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个
wal_keep_segments = 128 # 设置流复制保留的最多的xlog数目
wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间
max_connections = 200 # 一般查多于写的应用从库的最大连接数要比较大$$$
hot_standby = on # 说明这台机器不仅仅是用于数据归档,也用于数据查询
max_standby_streaming_delay = 30s # 数据流备份的最大延迟时间
# 多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,
# 这里只是设置最长的间隔时间
wal_receiver_status_interval = 10s 
hot_standby_feedback = on # 如果有错误的数据复制,是否向主进行反馈
wal_log_hints = on # also do full page writes of non-critical updates

为了方便,我不在postgresql.conf里面找对应的配置修改,因为这些配置除了max_connections,其他都是被注释掉的,一个一个找比较乱,所以我直接在postgresql.conf文件的末尾添加了这些配置

修改pg_hba.conf

在文件末尾添加

host replication replica 0.0.0.0/0 md5

0.0.0.0/0 可以换成你的从库地址 x.x.x.x/32

添加流复制用户

create role replica with replication login password ‘123456;
alter user replica with password ‘123456;

然后重启主节点的服务


从节点配置

提前设计好你的从库文件夹路径,我这里是 /data/pgsql/data

复制主库的数据过来

pg_basebackup -h 172.16.95.22 -p 5432 -U replica  -Fp -Xs -Pv -R -D /data/pgsql/data

设置data权限

sudo chmod 750 -R /usr/local/pgsql/data
sudo chown postgres -R /usr/local/pgsql

注:这里的赋权限有点危险,因为如果不小心少打了后面的路径,更改了usr路径下其他文件夹的权限,有可能会导致整个操作系统的崩溃,linux系统对特定路径下的权限十分严格,所以后来了重新配置了从库数据路径为/data/pgsql/data

编辑standby.signal文件

# 添加
standby_mode = 'on'

修改/usr/local/pgsql/data的postgresql.conf

primary_conninfo = 'host=172.16.95.22 port=5432 user=postgres password=123456'
recovery_target_timeline = latest # 默认
#max_connections = 200 # 大于等于主节点,正式环境应当重新考虑此值的大小 $$$
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
hot_standby_feedback = on
max_wal_senders = 15

同样,我也是在postgresql.conf的末尾添加这些配置

最后启动从库,注意,postgresql.log也需要上面配置的权限

sudo -u postgres ./pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/postgresql.log start

查看主库以及从库的状态

ps -ef | grep postgres

主库
在这里插入图片描述
从库
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值