PostgreSQL PG的流复制搭建

news2024/11/29 6:26:49

注: 本文为云贝教育 刘峰 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。【PostgreSQL】PG的流复制搭建 - 课程体系 - 云贝教育icon-default.png?t=N7T8https://www.yunbee.net/Home/News/detail/article_id/510.html

一 、主备机器规划主机名

二 、创建流复制

2.1 修改主机配置(两台主机都修改)

2.2 在主库设置

1) 初始化新数据库

2) 启动数据库

3)建立同步用户

4)配置$PGDATA/data/pg_hba.conf

注意:备库也做同样的配置(注意修改主机名),为了后面的主备切换

5)配置$PGDATA/data/postgres.conf

6)重启让配置生效

2.3 在备库设置

1)不需要初始化,直接从主库备份就行

2)备库修改配置文件

3)配置$PGDATA/data/pg_hba.conf

4)创建备库文件 standby.signal

touch standby.signal

5)重启让配置生效

三、验证

3.1 查看主备进程

3.2 主库切换日志

查看备库WAL日志同步情况

3.3 查看当前备库状态:

3.4 主库查询

sync_state表示同步模式
sent_lsn表示发送日志的起点
reply_time表示应用日志的起点

3.5 备库数据库日志内容

四、主从切换

这里建议把wal保留参数调大,保证切换过程中,原备库的日志和原主库的日志LSN同步

▪ min_wal_size

▪ wal_keep_size

4.1 停止主库

4.2 备库上执行命令,提升为主备

4.3 修改postgresql.auto.conf

重启数据库,查看后台进程,此时未发现walsender进程

4.4 在新备库上(原主库)创建一个 standby.signal文件,添加如下内容:

4.5 在新备库的 postgresql.auto.conf 文件中添加如下内容:

注意/home/postgres/.pgpass 其实没有没有这个文件,不需要创建。

4.6 启动新备库:

4.7 验证主备库是否能够同步

在主库进行 dml 操作,发现备库能够正常同步,切换成功。

五、实时同步

上面的配置是异步同步,对于主库的性能影响是最小的,但是会丢数据,我们可以把复制配置成实时同步。

当设置同步复制时:

• 最小化延迟

• 确保您有冗余延迟

• 同步复制比异步复制代价更高同步时是通过一个关键的参数 application_name 来实现的。

5.1 配置主库 postgres.conf,添加如下内容:

5.2 重启主库

5.3 修改备库 standby.signal 配置文件

在原来的内容中添加 application_name 内容

5.4、修改备库 postgresql.auto.conf

添加 application_name 内容,实际上备库是以这个文件为主,上面修改的 standby.signal 并不生效:

5.5 重启备库,查看后台日志信息:

consistent recovery state reached at 0/21000188

5.6 在主库查看同步状态:

状态显示为实时同步。

5.7 验证备库关闭

备库关闭之后,主库执行DML操作HANG住。

5.8 多个从库的配置

如果我们配置了多个备库,而且进行实时同步,假如只要保证前面的备库能够实时就可以,那么可以进行如下设置:

如果只要保证其中任何的备库同步成功,可以进行如下设置:

六、添加节点

6.1 修改 standby.signal 和postgres.auto.conf 文件

6.2 修改主库的 postgres.conf,添加如下一行:

6.3 重启主库,查看复制状态:

6.4 验证同步

主要备库的任何一个节点无法同步,都会影响主库的事务操作。但是发现正常的一个备库节点能够同步,即使主库处于停留状态,由此证明主库已经把事务传递到备库了,只是有备库没有同步,所以处于等待状态。

6.5 如果把主库的参数修改如下:

实验证明,如果第二个备库节点发生故障无法同步,不会影响主库事务操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1348645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS资源分类与访问

资源分类与访问 应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。 应用资源:借助资源文件能力,开发者在应用中自定义资源,自行管理这些资源在不同…

仿网易云音乐网站PHP源码,可运营的原创音乐分享平台源码,在线音乐库系统

源码介绍 使用PHP和MYSQL开发的原创音乐分享平台源码,仿网易云音乐网站。用户可以在网站上注册并上传自己的音乐作品,系统内置广告系统,为网站创造收入来源。 安装教程 1.导入sql.sql 2.修改 includes\config.php 数据库信息和网址都改成…

【教3妹学编程-算法题】一年中的第几天

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开森。 3妹:2哥你看今天的天气多好啊,经过了一周多的寒潮,天气总算暖和些了。 2哥&#xff…

最新ChatGPT网站AI系统源码,附详细搭建教程/支持GPT4.0/AI绘画/GPT语言对话/DALL-E3文生图/自定义知识库

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

搭建 Mac系统Arduino + MindPlus开发环境

搭建 Mac系统Arduino MindPlus开发环境 1.概述 2024年1月1号,元旦大家的安排丰富多彩,在这一天中我的安排依旧坚持初心,牢记使命。学习是我的起点也是我的终点,只要活着就要用知识丰富自己的生活。 今天是一个有意义的日子&…

GVRP实验配置

GVRP(GARP VLAN Registration Protocol),称为VLAN注册协议。 GVRP基于GARP的工作机制,是GARP的一种应用。GVRP用来维护交换机中的VLAN动态注册信息,并传播该信息到其它的交换机中。支持GVRP特性的交换机能够接收来自其…

Servlet见解3

13 Cookie和Session http协议是一个无状态的协议,你每一个跳转到下一个页面的时候都是需要先登录才能使用,这样就很麻烦比如淘宝,没有cookie和session的话,用户在首页已经登录上去了,但是需要再次登录才能选择商品&am…

无监督关键词提取算法:TF-IDF、TextRank、RAKE、YAKE、 keyBERT

TF-IDF TF-IDF是一种经典的基于统计的方法,TF(Term frequency)是指一个单词在一个文档中出现的次数,通常一个单词在一个文档中出现的次数越多说明该词越重要。IDF(Inverse document frequency)是所有文档数比上出现某单词的个数,通常一个单词…

JMeter(十六)-JMeter断言

十六、JMeter断言 1.简介 断言组件用来对服务器的响应数据做验证,常用的断言是响应断言,其支持正则表达式。虽然我们的通过响应断言能够完成绝大多数的结果验证工作,但是JMeter还是为我们提供了适合多个场景的断言元件,辅助我们来…

Redis原理及常见问题

高性能之道 单线程模型基于内存操作epoll多路复用模型高效的数据存储结构redis的单线程指的是数据处理使用的单线程,实际上它主要包含 IO线程:处理网络消息收发主线程:处理数据读写操作,包括事务、Lua脚本等持久化线程:执行RDB或AOF时,使用持久化线程处理,避免主线程的阻…

服务器监控软件夜莺部署(一)

文章目录 一、夜莺介绍1. 简介2. 相关网站 二、夜莺部署1. 部署架构2. Docker启动3. 配置数据源4. 内置仪表盘效果5. 时序指标效果 一、夜莺介绍 1. 简介 夜莺监控系统是一款专业的服务器监控软件,它可以帮助用户实时监测服务器的CPU、内存、磁盘利用率等。 夜莺监…

二叉树题目:根到叶路径上的不足结点

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:根到叶路径上的不足结点 出处:1080. 根到叶路径上的不足结点 难度 6 级 题目描述 要求 给定二叉树的根结点 root \texttt{root} root…

C语言之sizeof详解,5点透析,帮你真正了解它

今天也要继续坚持 前言 今天复习C语言了解到不少和她有关的知识,才知道之前对他了解甚少,于是写下博客及时记录自己的所得,与大家分享一下 第一点:sizeof不是函数 sizeof是一个关键字而不是函数!是的,他…

【AIGC矢量风格】黑色和白色一系列物体

基于矢量风格的一组画面: 矢量风格是海报设计中常见的一种风格,它主要使用矢量图形进行设计。矢量图形是由数学公式定义的图形,其特点是可以在不失去清晰度的情况下进行任意缩放,无论图形尺寸如何变化,都不会失真或模糊…

猫咪训练的方法指南,新手养猫的攻略大全

一、教程描述 本套教程可以教你学会养猫,让您快速成长为养猫专家。视频教程是猫咪基础训练,共有7个视频,电子书教程是养猫攻略大全,共有11本,包括爱猫养护实用手册,全世界250多种猫的彩色图鉴,…

解密C++中的forward<int>(a)和forward<int >(a):你真的了解它们之间的区别吗?

一文看尽C中的forward完美转发 一、前言二、深入理解forward和完美转发三、对forward<int>(a)的解析四、对forward<int &&>(a)的解析五、forward<int>(a)和forward<int &&>(a)的区别总结 一、前言 完美转发在C中具有重要性&#xff0…

kafka 的零拷贝原理

文章目录 kafka 的零拷贝原理 今天来跟大家聊聊kafka的零拷贝原理是什么&#xff1f; kafka 的零拷贝原理 零拷贝是一种减少数据拷贝的机制&#xff0c;能够有效提升数据的效率&#xff1b;   在实际应用中&#xff0c;如果我们需要把磁盘中的某个文件内容发送到远程服务器上…

zlib.decompressFile报错 【Bug已解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析:解决方案:方案1方案2此Bug解决方案总结寄语项目场景: 最近也是遇到了这个问题,看到网上也有人在询问这个问题,本文总结了自己和其他人的解决经验,解决了zlib.decompressFile报错 的问题。 问题: zlib.decompressFile报错,怎么解…

1. 私有云实战之基础环境搭建

文章目录 服务器搭建准备基础环境介绍展示效果iKuai展示效果iStroreOS展示效果ESXI展示效果群辉展示效果JumpServer展示kubesphere展示 环境搭建ESXI系统安装及基础网络环境配置ESXI系统安装基础网络环境配置配置虚拟交换机配置端口组 ESXI中虚拟机安装 ikuai安装及配置ikuai安…

C# PrinterSettings修改打印机纸张类型,paperType

需求&#xff1a;直接上图&#xff0c;PrinterSettings只能改变纸张大小&#xff0c;打印质量&#xff0c;无法更改打印纸类型 爱普生打印机打印照片已经设置了最高质量&#xff0c;打印图片仍不清晰&#xff0c;需要修改打印纸类型&#xff0c;使用PrintDialog调出对话框&…