PostgreSQL主从同步

目录

一、主从复制原理

二、配置主数据库

2.1 创建同步账号

2.2 配置同步账号访问控制

2.3 设置同步参数

3.4 重启主数据库

三、配置从数据库

3.1 停止从库

3.2 清空从库数据文件

3.3 拉取主库数据文件

3.4 配置从库同步参数

3.5 启动从库

四、测试主从

4.1在主库查看从库连接状态

4.2 新增数据测试同步


一、主从复制原理

        PostgreSQL的主从同步主要基于其预写日志(Write-Ahead Log, WAL)机制和流复制(Streaming Replication)功能来实现数据的高可用性和一致性。

        WAL是PostgreSQL确保数据持久性和一致性的一个核心组件。它的工作原理是,任何对数据库的修改操作,在实际修改数据文件之前,都会先记录到WAL中。这意味着,事务的提交不仅仅依赖于数据页的更新,还依赖于相关日志记录到WAL并被确认。这个过程确保了即使在系统崩溃的情况下,也能通过重放WAL日志恢复到一致的状态。

        流复制是PostgreSQL实现主从同步的主要方式,它建立在WAL机制之上,它允许将主服务器(Primary)上的事务日志(WAL, Write-Ahead Logging)实时发送到从服务器(Secondary)。从服务器接收到这些事务日志后,将其应用到自己的数据库中,从而保持与主服务器数据的一致性。

二、配置主数据库

2.1 创建同步账号

CREATE ROLE replica login replication encrypted password 'wsx-123';

2.2 配置同步账号访问控制

# vi /data/db/postgresql/pg_hba.conf

host    replication     replica         192.168.179.135/32      md5

2.3 设置同步参数

# vi /data/db/postgresql/postgresql.conf

wal_level = replica
max_wal_senders = 2

3.4 重启主数据库

pg_ctl -D /data/db/postgresql -l logfile restart

三、配置从数据库

3.1 停止从库

pg_ctl -D /data/db/postgresql -l logfile stop

3.2 清空从库数据文件

rm -rf /data/db/postgresql/*

3.3 拉取主库数据文件

pg_basebackup -h 192.168.179.134 -D /data/db/postgresql -p 5432 -U replica -Fp -Xs -Pv -R --checkpoint=fast

3.4 配置从库同步参数

        由于从库数据文件是从主库拉取过来,需要先删除主库同步相关的参数,然后新增从库同步参数:

vi /data/db/postgresql/postgresql.conf

primary_conninfo = 'host=192.168.179.134 port=5432 user=replica password=wsx-123'
recovery_target_timeline = latest 
hot_standby = on

3.5 启动从库

pg_ctl -D /data/db/postgresql -l logfile start

四、测试主从

4.1在主库查看从库连接状态

select client_addr,usename,backend_start,application_name,sync_state,sync_priority FROM pg_stat_replication;

4.2 新增数据测试同步

主库插入数据:

从库数据对比:

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

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

相关文章

【HTML入门】第四课 - 换行、分割横线和html的注释

这一小节,我们继续说HTML的入门知识,包括换行、横线分割以及注释(html的注释)。 目录 1 换行 2 分割横线 3 html注释 1 换行 html中分为块元素和行内元素。这一小节呢,先不说这些元素们,我们先说一下换…

免费分享:1981-2016全球粮食产量数据集(附下载方法)

了解主要作物的历史产量模式,包括趋势和年际变化,对于了解在粮食需求和气候变化日益增长的情况下粮食生产的现状、潜力和风险至关重要。 数据简介 1981-2016全球粮食产量数据集是农业普查统计(粮农组织报告的国家产量统计数据)和…

云渲染平台那个好?2024云渲染测评

1.渲染100(强烈推荐) 以高性价比著称,是预算有限的小伙伴首选。 15分钟0.2,60分钟内0.8;注册填邀请码【5858】可领30元礼包和免费渲染券) 提供了多种机器配置选择(可以自行匹配环境)最高256G大内存机器,满足不同用户需求。支持…

GDBFuzz:基于硬件断点的嵌入式系统模糊测试工具

关于GDBFuzz GDBFuzz是一款功能强大的模糊测试工具,在该工具的帮助下,广大研究人员可以使用硬件断点对嵌入式系统进行模糊测试。 GDBFuzz的理念是利用微控制器的硬件断点作为覆盖引导模糊测试的反馈。因此,GDB被用作通用接口以实现广泛的适用…

Java异常详解及自定义异常

认识异常,掌握异常处理主要的5个关键字:throw、try、catch、final、throws并掌握自定义异常 目录 1、异常概念与体系结构 1、1异常的概念 1、2异常体系结构 1、3异常的分类 编译时异常: 运行时异常 : 2、异常处理 2、1防御式…

如何确保 PostgreSQL 在高并发写操作场景下的数据完整性?

文章目录 一、理解数据完整性二、高并发写操作带来的挑战三、解决方案(一)使用合适的事务隔离级别(二)使用合适的锁机制(三)处理死锁(四)使用索引和约束(五)批…

【C++】类和对象(中)--下篇

个人主页~ 类和对象上 类和对象中-上篇 类和对象 五、赋值运算符重载1、运算符重载2、赋值运算符重载3、前置和后置重载 六、const成员七、日期类的实现Date.hDate.cpptest.cpptest1测试结果test2测试结果test3测试结果test4测试结果test5测试结果test6测试结果test7测试结果 八…

SAP FICO自定义权限对象及自定义作业创建

设置的通用说明 要求设置税收分组权限,自定义权限对象:Z_SSFZ 执行按钮权限控制:权限对象Z_SSFZ 字段名:ZSSFZ对应维护税收分组 字段名:ZACTVT01 01:付款银行信息维护 02:员工基本信息维护…

知识图谱驱动的深度推理:ToG算法的创新与应用

LLMs通过预训练技术在大量文本语料库上生成连贯且符合上下文的响应。然而,面对需要复杂知识推理的任务时,它们存在明显的局限性。这些问题包括对超出预训练阶段的专业知识的准确回答失败,以及缺乏责任性、可解释性和透明度。为了解决这些问题…

伦敦银交易平台价格的突破成不成功?这点很重要!

在伦敦银交易中,当银价出现突破的时候,也正是引起很多投资者关注的时候。一旦银价出现突破,很可能是新行情的开端。但是做过突破交易,有相关经验的朋友会发现,自己在伦敦银交易平台做突破的时候,也并不是每…

【QT】多元素控件

多元素控件 多元素控件1. List Widget2. Table Widget3. Tree Widget 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别,以 QTableWidget 和 QTableView 为例: …

数据结构--二叉树相关题2(OJ)

1.比较对称二叉树(镜像二叉树) 二叉树相关题1中第二题的变形题。先去看1哦! 左子树和右子树比较 bool _isSymmetric(struct TreeNode* p, struct TreeNode* q) {if (p NULL && q NULL)return true;//如果两个都为空则是相等的if …

AI产品经理一篇读透知识图谱(万字深度好文)

1、知识图谱技术综述 知识图谱技术是人工智能技术的组成部分,其强大的语义处理和互联组织能力,为智能化信息应用提供了基础。以下内容涵盖了基本定义与架构、代表性知识图谱库、构建技术、开源库和典型应用。 引言 随着互联网的发展,网络数…

抖音短视频矩阵系统全攻略:从入门到精通

在数字化时代,短视频已成为连接用户与内容的桥梁。抖音作为短视频领域的领军平台,其影响力不容小觑。抖音短视频矩阵系统的构建和管理,对于希望在这个平台上取得成功的创作者和品牌来说至关重要。本文将提供一份全面的攻略,从入门…

Qt篇——QLabel固定尺寸的情况下让字体大小自适应并自动换行以完整显示

当文字较少时,默认字体大小为16;当文字内容较多时,自动换行并缩小字体。 举例: 字体较少时 字体较多时 思路: 设置自动换行属性 setWordWrap;通过QFontMetrics计算文字字体要多大、显示多少行才不会超过…

做外贸干一行爱一行,还是干一行厌一行?

记得年轻的时候,每每和同龄人不同行业聊天的时候,大家普遍的感觉就是:自己这一行太苦了,以后有孩子了干什么都不能让他做自己这一行。 和在银行上班的同学聊天,他们最大的苦恼是需要每天开发客户, 让客户在…

8、开发与大模型对话的独立语音设备

一、设计原理 该系统的核心部分主要由ESP32-WROVER开发板和ESP32-CAM摄像头、MAX9814麦克风放大器模块、MAX98357功放、声音传感器和SU-03T语音识别芯片构成。通过使用ESP32-WROVER开发板,用户可以实现通过语音与ai进行交互并进行人脸识别。 系统中,从外部输入电源中获取电源…

一手洞悉泰国slot线上游戏投放本土网盟CPI计费广告优势

一手洞悉泰国slot线上游戏投放本土网盟CPI计费广告优势 ​在泰国这个拥有独特文化背景和审美观念的国家,Slots游戏以其丰富的玩法和刺激的体验迅速赢得了玩家们的喜爱。然而,要在竞争激烈的市场中脱颖而出,有效的推广策略显得尤为重要。本土…

【Excel操作】Python Pandas判断Excel单元格中数值是否为空

判断Excel单元格中数值是为空,主要有下面两种方法: 1. pandas.isnull 2. pandas.isna判断Excel不为空,也有下面两种方法: 1. pandas.notna 2. pandas.notnull假设有这样一张Excel的表格 我们来识别出为空的单元格 import panda…

Python酷库之旅-第三方库Pandas(010)

目录 一、用法精讲 22、pandas.read_hdf函数 22-1、语法 22-2、参数 22-3、功能 22-4、返回值 22-5、说明 22-6、用法 22-6-1、数据准备 22-6-2、代码示例 22-6-3、结果输出 23、pandas.HDFStore.put方法 23-1、语法 23-2、参数 23-3、功能 23-4、返回值 23-5…