Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PostgreSQL的流复制搭建

PostgreSQL的流复制搭建

作者头像
数据和云
发布于 2022-03-04 05:44:02
发布于 2022-03-04 05:44:02
95900
代码可运行
举报
文章被收录于专栏:数据和云数据和云
运行总次数:0
代码可运行

单机版流复制测试环境搭建

搭建规划:

主库

备库

数据目录

/pgdata/12/data

/pgdata/1202/data

归档目录

/pgdata/12/arch

/pgdata/1202/arch

端口

5432

5433

创建流复制用户:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create role replica with replication login password '123456';

备份主库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pg_basebackup -D /backup/ -Ft -Pv -U postgres -h 1.15.57.253 -p5432 -R

解压备份:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /backup
tar -xvf base.tar -C /pgdata/12/datatar -xvf pg-wal.tar -C /pgdata/12/arch

修改postgresql.conf:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
参数修改max_wal_senders = 10                   #设置可以最多有几个流复制连接,差不多有几个从,就设置几个  ,相当月mysql的binlog dump线程
wal_keep_segments = 0                  #设置流复制保留的最多的xlog数目  128
wal_sender_timeout = 60s               #设置流复制主机发送数据包的超时时间
max_connections = 100                  #一般查多于写的应用从库的最大连接数比较大
hot_standby = on                       #针对从库,说明这台机器不仅仅是用于数据归档,也用于数据查询
max_standby_streaming_delay = 30s      #数据备份的最大延迟时间                                                  wal_receiver_status_interval = 10s     #多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的时间间隔
hot_standby_feedback = on              #如果有错误的数据复制,是否向主进行反馈
recovery_target_timeline = 'latest'    #指定恢复到一个最近的时间线

另外因为是单机多实例,还需要修改这几个参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
archive_command = 'cp %p /pgdata/1202/arch/%f'
port = 5433

修改standby.signal:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
standby_mode = 'on'

表示为备库。

启动备库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pg_ctl -D /pgdata/1202/dataCST [22362] LOG:  started streaming WAL from primary at 0/6000000 on timeline 2

监控复制:

  • 主库:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select pid,state,client_addr,sync_priority,sync_state from pg_stat_replication;
  • 备库:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
psql -U postgres -h localhost -p 5433 -c "\x" -c "select * from pg_stat_wal_receiver;"

测试:

主库上新建一个库:

查看备库:


墨天轮原文链接:https://www.modb.pro/db/197776?sjhy(复制链接至浏览器或点击文末阅读原文查看)

关于作者

陈家睿,云和恩墨MySQL技术顾问,拥有MySQL OCP、PGCE、OBCA、SCDP证书,长期服务于电信行业。现负责公司MySQL数据库分布式数据库运维方面的技术工作;热衷于运维故障处理、备份恢复、升级迁移、性能优化的学习与分享。

END

推荐阅读:331页!2021年度数据库技术年刊

推荐下载:2021数据技术嘉年华视频回放及PPT下载

2021数据技术嘉年华50余个PPT下载、视频回放已上传墨天轮平台,可在“数据和云”公众号回复关键词“2021DTC”获得!

你知道吗?我们的视频号里已经发布了很多精彩的内容,快去看看吧!↓↓↓

点击下图查看更多 ↓

云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验