美文网首页
postgresql配置主从流复制

postgresql配置主从流复制

作者: 灰66 | 来源:发表于2018-07-13 11:38 被阅读0次

参考:https://www.cnblogs.com/yjf512/p/4499547.html

postgres主从流复制


postgres在9.0之后引入了主从的流复制机制,所谓流复制,就是从库通过tcp流从主库中同步相应的数据。postgres的主从看过一个视频,大概效率为3w多事务qps。

postgres的主从主称之为primary,从称为stand_by。主从配置需要注意的一个是主从的postgres的版本,环境,等最好都需要一致,否则可能产生奇奇怪怪的问题。

postgres的主配置

主:192.168.8.68这台机器

从:192.168.8.70

首先需要配置一个账号replica进行主从同步,并分配角色权限(superuser角色才有权限),\du查看

修改pg_hba.conf,增加replica用户,进行同步。

修改postgresql.conf,注意设置下下面几个地方:

wal_level = hot_standby # 这个是设置主为wal的主机

max_wal_senders = 32 # 这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个

wal_keep_segments = 256 # 设置流复制保留的最多的xlog数目

wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间

max_connections = 100 # 这个设置要注意下,从库的max_connections必须要大于主库的

重启主

pg_ctl restart -D /data/pgsql/data  知道你配置的数据目录

postgres的从配置

创建数据目录 mkdir -p /data/pgsql/data

pg_basebackup -F p --progress -D /data/pgsql/data -h 10.12.12.10 -p 5432 -U replica --password

这里使用了pg_basebackup这个命令,/data/pgsql/data这个目录是空的

成功之后,就可以看到这个目录中现有的文件都是一样的了。

进入到/data/pgsql/data目录,复制recovery.conf,这个文件可以从pg的安装目录的share文件夹中获取,比如

cp /usr/local/Cellar/postgresql/10.4/share/recovery.conf.sample  /data/pgsql/data/recovery.conf

修改recovery.conf,只要修改几个地方就行了

standby_mode = on # 这个说明这台机器为从库

primary_conninfo = 'host=192.168.8.68 port=5432 user=replica password=replica' # 这个说明这台机器对应主库的信息

recovery_target_timeline = 'latest' # 这个说明这个流复制同步到最新的数据

postgresql.conf中也有几个地方要进行修改

max_connections = 1000 # 一般查多于写的应用从库的最大连接数要比较大

hot_standby = on # 说明这台机器不仅仅是用于数据归档,也用于数据查询

max_standby_streaming_delay = 30s # 数据流备份的最大延迟时间

wal_receiver_status_interval = 1s # 多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间hot_standby_feedback = on # 如果有错误的数据复制,是否向主进行反馈

重启从库:

确认是否生效

pg_ctl restart -D /data/pgsql/data

ps一下主库看到sender进程

从库看到receiver进程

相关文章

网友评论

      本文标题:postgresql配置主从流复制

      本文链接:https://www.haomeiwen.com/subject/pskrpftx.html