搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小惠珠哦
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Hadoop之MapReduce基础
2
比阿里EMO抢先开源!蔡徐坤“复出”唱RAP,腾讯AniPortrait让照片变视频,鬼畜区UP狂喜!看看哪家效果好_audio2video大模型
3
数据库系统概论(第五版)课后习题一
4
基于Spark的用户分析系统_基于spark分布式计算框架的用户行为分析
5
安全测试-django防御安全策略_django 开发的网站提高安全性
6
前端工程师的岗位职责(合集)_前端设计分工
7
vant 组件【PullRefresh 下拉刷新】页面没划到最顶部依然触发刷新_vant2list未下拉到头就刷新了
8
Android 项目必备(三十六)-->设备连接管理及常用 ADB 命令行_adb连接是否成功
9
Mybatis框架学习笔记(04)_实验04 mybatis框架:注解方法
10
PMP证书:考PMP的人真的很厉害吗?_考pmp的人都很厉害吗
当前位置:
article
> 正文
postgres数据库的流复制
作者:小惠珠哦 | 2024-06-30 09:57:56
赞
踩
postgres数据库的流复制
1. 流复制和逻辑复制的差异
逻辑复制和流复制最直观的不同是,逻辑复制支持表级别复制
区分点事原理不同
逻辑日志是在wal日志产生的数据库上,由逻辑解析模块对wal日志进行初步的解析,解析结果是ReorderBufferChange(理解为HeapTupleData),再由pgoutput plugin对中间结果进行过滤和消息化拼接,然后将其发送到订阅端,订阅端根据接受到的Heap TupleData重新对其执行insert、delete、udpate操作
流复制时将数据从walrecord拷贝到数据页,
逻辑复制时将数据重新执行一次insert、update或delete
2. 流复制
流复制面对未提交的事务,事务没有提交也会同步到备机,当主库进行提交和回滚的时候,也会同步进行提交和回滚。对大事务相对友好
流复制会导致备机也会产生大量死元祖,需要做vacuum
流复制时将wal日志中记录的内容按照确切的块地址逐字节的拷贝到备库,因此主备之间数据分布是一样的,意味着主备机器上,同一条记录的ctid是相同的
3. 流复制的实现原理
后端进程通过执行XLogInsert和XLogFlush函数,将wal数据写入并刷新到WAL段文件中
walsender进程将写入wal段的wal数据发送给walreveiver进程
发送wal数据后,后端进程继续等待备用服务器的ACK响应。更准确的说,后端进行通过执行内部函数SyncRepWaitForLSN获得一个latch,并等待他被释放
备用服务器上的walreveiver将接受到的wal数据写入备用的wal段中,使用write系统调用,并向walsender返回一次ACK响应
walreveiver使用如fsync等系统调用将wal数据刷新到wal段,向walsender返回另一个ACK响应,并通知启动进程关于wal数据的刷新
startup进程回访已写入wal段的wal数据
当walsender收到walreveiver的ack响应时,释放后端进程的latch,然后后端进程的提交或中止操作将完成。latch释放的时机取决于参数synchronous_commit,如果设置为on,当收到步骤5的ACK时释放latch,如果设置为remote_wirte,则在收到步骤3的ACK时释放latch
ACK的包括内容
写入最新wal数据的lsn位置
刷新最新wal数据的lsn位置
在启动过程中回放最新wal数据的lsn位置
发送此响应的时间戳
过程分析
主库的进程进行写操作
产生WAL record
walsender感知到新的wal,发送给备库
备库接受,写盘再回放
是否发送wal日志与主库事务的提交与否没有关系,但主库是否能提交取决于备库的wal日志写入位置,默认是on的话需要落盘,备库实时回放
注意点
流复制就是借助latch实现主从进程间的协作
流复制场景下,只读事务、子事务的提交以及事务回滚,无需等待备库的ACK
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小惠珠哦/article/detail/772227
推荐阅读
article
Spark
---
核心
概念
(
Spark
,
RDD
,
Spark
的
核心
构成组件)详解_
spark
核心
概念
...
Spark
就是一个集成离线计算,实时计算,SQL查询,机器学习,图计算为一体
的
通用
的
计算框架。何为
RDD
?其实
RDD
就是...
赞
踩
article
FPGA
主要厂商
_
fpga
厂家...
FPGA
(Field Programmable Gate Array)即现场可编程门阵列,它是在PAL、GAL、CPLD...
赞
踩
article
搭建
GitLab
+
Jenkins
持续
集成
环境
图文教程...
GitLab
是一个代码仓库,用来管理代码。
Jenkins
是一个自动化服务器,可以运行各种自动化构建、测试或部署任务。所以...
赞
踩
article
可以获取
python
整数
类型
帮助
的
是什么-
Python
的
数值
类型
(
整数
、长
整数
、
浮点数
和
复数
).....
在
Python
中有4种
类型
的
数——
整数
、长
整数
、
浮点数
和
复数
。2是一个
整数
的
例子。长
整数
不过是大一些
的
整数
。3.23和5...
赞
踩
article
STM32
按
键长
按
短
按
控制
LED
灯闪烁 同时可以
按
一下键切换一下状态_
stm32
长
按
短
按
控制灯亮...
STM32
程序:
按
键长
按
和短
按
的判断,用来控制
LED
灯,有借鉴了其他程序,但是有细节上的不同。(因为这里做的
按
键是速度,...
赞
踩
article
将
IDEA
中的
项目
部署到
Linux
服务器
上_
idea
项目
部署到
linux
...
将
IDEA
中的
项目
部署到
Linux
服务器
上(powernode)1、在Navicat里面连
Linux
服务器
上的MySQL...
赞
踩
article
HTML5
页面
点击
按钮显示
闪烁
或黑色背景
_
html
点击
后
闪烁
...
H5
页面
在IOS端测试的时候发现,
点击
按钮会闪动,出现一个黑色的背景一闪而过
_
html
点击
后
闪烁
html
点击
后
闪烁
...
赞
踩
article
AI赋能自媒体进化:利用
Coze
打造
微信
公众
号
智能
知识问答客服
bot
_
coze
微信
公众
号...
AI赋能自媒体进化:利用
Coze
打造
微信
公众
号
智能
知识问答客服
bot
_
coze
微信
公众
号
coze
微信
公众
号 ...
赞
踩
article
深度解密
Spark
性能
优化
之道...
课程通过实战案例解析和
性能
调优技巧的讲解,帮助学员提升大数据处理系统的
性能
和效率。课程内容涵盖了
Spark
性能
调优的各个...
赞
踩
article
huggingface
实操_语言
模型
秒变API,一文了解如何
部署
DistilGPT
-
2
...
选自towardsdatascience作者:Celeb Kaiser机器之心编译参与:高璇、Geek AI
模型
又大又复...
赞
踩
article
面试官问我
MySQL
和
MariaDB
的
联系
和
区别,这我能不知道?_
mysql
mariadb
使用
哪...
MySQL
和
MariaDB
都是强大而受欢迎
的
关系型数据库管理系统,它们
的
设计
和
功能在很大程度上是相似
的
。然而,Maria...
赞
踩
article
中
值
滤波
_
中
值
滤波
的缺点...
一、概述 数字图像的采样或传输在经过传感器或传输通道时经常受到噪声的干扰。为了便利进一步的图像操作,如:边缘检测、图像分...
赞
踩
article
OpenAI
重磅发布
GPT
-
4o
!向
免费
客户开放,
GPT
-
4o
官方
使用指南
分享_
openai
gp...
GPT
-
4o
中的“o”代表“omni”——指的是
GPT
-
4o
的。。
GPT
-
4o
是
OpenAI
昨天晚上发布的新...
赞
踩
article
AD中
画
PCB
详细流程
_
ad
画
pcb
教程...
新手
画
PCB
的流程总结及注意事项
_
ad
画
pcb
教程
ad
画
pcb
教程 1.新建工程 先在电...
赞
踩
article
数据库
管理与
数据库
语句
...
介绍:MySQL
数据库
存储过程是一组为了完成特定功能的 SQL
语句
的集合,存储过程在
数据库
中创建并保存,它不仅仅是 ...
赞
踩
article
【渝粤题库】广东开放大学
商务
网站
建设
与维护 形成性考核_
企业
在
电子
商务
网站
中
通过
( ),
可以
及时地...
选择题题目:
企业
在
电子
商务
网站
中
通过
( ),
可以
及时地收集
、
加工
、
处理
、
传递与利用相关
的
数据
资料。答案:A
、
商品订购信息...
赞
踩
article
SpringBoot
优点
达
项目
实战
:
登录
功能
实现
(四)...
因为业务层中使用的是mybatisPlus自带的查询语句,所以Mapper层不需要去进行sql自定义查询,但必须将创建出...
赞
踩
article
java
的
list
详解
_
java
list
讲解...
1 List 的常用方法:public class TestList { /** * 测试add/remove/siz...
赞
踩
article
大
数据
面试之
Hadoop
...
大
数据
面试之hadoop大
数据
面试之
Hadoop
目录 介绍下
Hadoop
Hadoop
...
赞
踩
article
Hadoop
面试题(十)_下列关于
hbase
命令
中
,
命令
执行
成功
返回
0
,
执行
失败
返回
-
1
,
下列
命令
...
1
. 简述下列关于
Hadoop
命令
中,
命令
执行
成功
返回
0,
执行
失败
返回
-
1
,下列
命令
返回
-
1
的是 ?2. 关于DataN...
赞
踩
相关标签
spark
大数据
分布式
fpga开发
gitlab
jenkins
CI
持续集成
单片机
c语言
按键事件
stm32
linux
服务器
intellij-idea
部署
centos
css
javascript
前端
媒体
人工智能
微信
性能优化