当前位置:网站首页>主从复制系统设计
主从复制系统设计
2022-06-26 22:01:00 【华为云】
副本(replica):每个存储数据库完整数据集的节点。当存在多副本,不可避免产生问题:如何确保所有数据落在了所有副本?
每次向DB的写操作都需传播到所有副本,否则副本就会不一致。最常见的解决方案是基于主节点的复制(也称 主动/被动或主/从复制),如图-1。
1.1 主从复制原理
- 指定某副本为主副本或称为主节点。当客户端向DB写时,必须将请求发给主副本,主副本会将新数据写入其本地存储
- 其他副本称为从副本或只读副本,从节点,热备(hot-standby)[^i]。每当主节点将新数据写入本地存储后,也会将数据变更发给所有的追随者,称为复制日志(replication log) 记录或变更流(change stream)。每个从副本获得更改日志之后将其应用到本地,且严格保持与主副本相同的写入顺序
- 客户端从DB读数据时,可在主节点或从节点上执行查询。 但只有主节点才能接受写请求。客户端角度,从节点都是只读)
[^i]: 不同的对 热(hot),温(warm),冷(cold) 备份服务器有不同的定义。 如PostgreSQL中,热备(hot standby) 指的是能接受客户端读请求的副本。而 温备(warm standby) 只是追随领导者,但不处理客户端的任何查询。

这种复制模式是许多关系数据库的内置功能,如PostgreSQL(9.0版本开始)、MySQL、Oracle Data Guard和SQL Server的AlwaysOn Availability Groups。 而一些非关系数据库如MongoDB、RethinkDB和Espresso也支持主从复制。 主从复制不仅限于DB:像Kafka、RabbitMQ这样的分布式消息代理也使用。
边栏推荐
- 经典Wide & Deep模型介绍及tensorflow 2代码实现
- 如何用 SAP BTP 平台上的图形建模器创建一个 OData 服务
- Centos7编译安装Redis
- 矩阵求导及其链式法则
- Is there any risk in opening a new bond registration account? Is it safe?
- Introduction to dependency injection in SAP Spartacus
- MATLAB and MySQL database connection and data exchange (based on ODBC)
- YOLOv6:又快又准的目标检测框架开源啦
- [mathematical modeling] spanning tree based on Matlab GUI random nodes [including Matlab source code 1919]
- AI智能抠图工具--头发丝都可见
猜你喜欢

Some ways out for older programmers

About appium trample pit: encountered internal error running command: error: cannot verify the signature of (solved)

YOLOv6:又快又准的目标检测框架开源啦

【图像处理基础】基于matlab GUI图像直方图均衡化系统【含Matlab源码 1924期】
![[fundamentals of image processing] GUI image histogram equalization system based on MATLAB [including Matlab source code 1924]](/img/8a/f5847eef7318f3db54aa2d4405b06a.jpg)
[fundamentals of image processing] GUI image histogram equalization system based on MATLAB [including Matlab source code 1924]
![leetcode:1567. 乘积为正数的最长子数组长度【dp[i]表示以i结尾的最大长度】](/img/a4/c5c31de7a0a3b34a188bfec0b5d184.png)
leetcode:1567. 乘积为正数的最长子数组长度【dp[i]表示以i结尾的最大长度】

DAST black box vulnerability scanner part 5: vulnerability scanning engine and service capability

What are the accounting elements

CVPR 2022 | 美团技术团队精选论文解读

花店橱窗布置【动态规划】
随机推荐
DAST 黑盒漏洞扫描器 第五篇:漏洞扫描引擎与服务能力
Different subsequence problems I
打新债注册开户有没有什么风险?安全吗?
用C#通过sql语句操作Sqlserver数据库教程
Unity 设置Material、Shader的方法
MacOS環境下使用HomeBrew安裝[email protected]
尚硅谷DolphinScheduler视频教程发布
在线协作文档综合评测 :Notion、FlowUs、Wolai、飞书、语雀、微软 Office、谷歌文档、金山文档、腾讯文档、石墨文档、Dropbox Paper、坚果云文档、百度网盘在线文档
Convolutional neural network (CNN) explanation and tensorflow2 code implementation
Talk about my remote work experience | community essay solicitation
Is it safe to buy stocks and open accounts through the account QR code of the CICC securities manager? Want to open an account for stock trading
Briefly describe the model animation function of unity
线性模型LN、单神经网络SNN、深度神经网络DNN与CNN测试对比
Yolov6: the fast and accurate target detection framework is open source
BN(Batch Normalization) 的理论理解以及在tf.keras中的实际应用和总结
Module externe unity3d anyportrait 2D Skeleton Animation
Y48. Chapter III kubernetes from introduction to mastery -- pod status and probe (21)
Using C to operate SQLSERVER database through SQL statement tutorial
Final part of web crawler: send directional messages to 100000 Netease cloud users
random_ normal_ Initializer uses