数据库系列——Mysql主从复制作用和工作原理详解

MySQL主从复制架构:原理与搭建详解 在MySQL主从复制的实践过程中,有一些常见的陷阱和问题,提前了解这些"坑"可以帮助你避免不必要的麻烦。随着数据库技术的不断演进,MySQL的复制功能也在持续发展。了解最新的复制技术和趋势,有助于我们设计更先进的数据库架构。InnoDB Cluster是MySQL官方的高可用解决方案,它基于Group Replication、MySQL Router和MySQL Shell三个组件,提供了一个完整的高可用架构。核心组件:提供数据复制和高可用保障:提供透明的读写分离和自动故障转移:提供集群管理和监控工具。 阅读详情

简述:主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库 事务处理库,从库做查询库

一、什么是主从复制

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单向、异步复制。在复制过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。

并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新。

二、主从复制的作用

一是确保数据安全;做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据的丢失。

二是提升I/O性能;随着日常生产中业务量越来越大,I/O访问频率越来越高,单机无法满足,此时做多库的存储,有效降低磁盘I/O访问的频率,提高了单个设备的I/O性能。

三是读写分离,使数据库能支持更大的并发;在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

三、主从复制的原理

主从复制中涉及的文件

主库: binlog

从库:

  • relaylog 中继日志
  • master.info 主库信息文件
  • relaylog.info relaylog应用的信息

主从复制中涉及的三个线程

主库:

Binlog_Dump Thread :

从库:

SLAVE_IO_THREAD

SLAVE_SQL_THREAD

具体原理如图所示:

 

  1. 从数据库执行change master to 命令(主数据库的连接信息+复制的起点)
  2. 从数据库会将以上信息,记录到master.info文件
  3. 从数据库执行 start slave 命令,立即开启SLAVE_IO_THREAD 和SLAVE_SQL_THREAD这两个线程
  4. 从数据库 SLAVE_SQL_THREAD,读取master.info文件中的信息获取到IP,PORT,User,Pass,binlog的位置信息
  5. 从数据库SLAVE_IO_THREAD请求连接主数据库,主数据库专门提供一个SLAVE_IO_THREAD,负责通过relay日志和SLAVE_SQL_THREAD交互
  6. SLAVE_IO_THREAD根据binlog的位置信息,请求主数据库新的binlog
  7. 主数据库通过Binlog_DUMP_Thread将最新的binlog,通过网络TP给从数据库的SALVE_IO_THREAD
  8. SLAVE_IO_THREAD接收到新的binlog日志,存储到TCP/IP缓存,立即返回ACK给主库,并更新master.info
  9. SLAVE_IO_THREAD将TCP/IP缓存中数据,转储到磁盘relaylog中.
  10. SLAVE_SQL_THREAD读取relay.info中的信息,获取到上次已经应用过的relaylog的位置信息
  11. SLAVE_SQL_THREAD会按照上次的位置点回放最新的relaylog,再次更新relay.info信息
  12. 从数据库会自动purge应用过relay进行定期清理

每个主/从连接有三个线程。具有多个从站的主站为每个当前连接的从站创建一个二进制日志转储线程,每个从站都有自己的I / O和SQL线程。

从库使用两个线程将读取更新与主库分开并将它们执行到独立任务中。因此,如果语句执行缓慢,则不会减慢读取语句的任务。例如,如果从服务器尚未运行一段时间,则当从服务器启动时,其I / O线程可以快速从主服务器获取所有二进制日志内容,即使SQL线程远远落后。如果从服务器在SQL线程执行了所有获取的语句之前停止,则I / O线程至少已获取所有内容,以便语句的安全副本本地存储在从属的中继日志中,准备在下次执行时接着执行。

一旦主从复制构建成功,主数据库当中发生了新的变化,都会通过 slave_dump_THREAD发送信号给SLAVE_IO_THREAD,增强了主从复制的实时性.

实际的项目中,主从复制会结合读写分离技术实现系统高性能、高可用

主从复制通过数据库配置实现,但是读写分离一般都是通过程序去控制的。

MySQL数据库——主从复制 目录 一、主从复制的概念 二、主从复制的原理 1、主节点 binary log dump 线程 2、从节点I/O线程 3、从节点SQL线程 三、主从复制的用途 1、读写分离 2、 数据实时备份,当系统中某个节点发生故障时,可以方便的故障切换 3、高可用HA 4、架构扩展 四、主从复制的形式 1、一主一从 2、一主多从 3、多主一从 (从5.7开始支持) 4、双主复制 5、级联复制 五、主从复制的模式 1、异步模式 2、半同步模式 3、全同步模式 六、复制类型 ... 阅读详情

相关推荐

告别LM2596!用LM5175打造400W自动升降压数控电源(附完整电路图与代码)

本文详细介绍了如何利用LM5175芯片设计400W自动升降压数控电源,替代传统的LM2596方案。通过四开关Buck-Boost拓扑结构,LM5175实现了高达98%的转换效率和400W大功率输出,支持无缝升降压切换。文章涵盖芯片选型、电路设计、PCB布局及STM32数控实现,为工程师提供完整的实践指南。

weixin_27032989的博客 597

主从复制之作用和原理

主从复制之作用和原理 有些同学连集群和主从都分不清楚的,这里我说一下他们最本质的区别,其实也就是data-sharing和nothing-sharing的区别。集群是共享存储的。主从复制中没有任何共享。每台机器都是独立且完整的系统。 目录: 一、什么是主从复制 二、主从复制的作用(重点) 三、主从复制的原理(重中之重) 四、必问面试题干货分析(最最重要的点) 一、什么是主从复制? 主从复制,是用来...

Crazy___fish的博客 2703

基于VisionMaster的药丸外观缺陷机器视觉检测系统实战解析

机器视觉作为工业自动化的核心技术,通过图像采集与智能分析替代人眼,实现高精度、高效率的在线检测。其核心原理在于利用相机、镜头、光源等硬件获取目标图像,再通过图像处理算法提取特征并进行识别与判断。这项技术的核心价值在于能够大幅提升生产质量与效率,尤其在需要高速、高精度且重复性强的检测场景中优势显著。在制药、食品、电子等行业的表面缺陷检测、尺寸测量、字符识别等环节应用广泛。本文聚焦于制药行业的药丸外观缺陷检测这一具体应用,深入探讨了如何利用海康威视VisionMaster视觉平台,结合**Blob分析**与**

weixin_32903229的博客 311

数据库中的主从复制?看完就懂!

介绍数据库中的主从复制

qingsushuo的博客 609

mac安全干净卸载Anaconda3

主要原因是python命令没有映射到已经安装的python版本上,则需要添加。修改~/.bash_profile文件,将anaconda相关删除。现在想卸载Anaconda,恢复使用mac系统自带的Python。最后在mac的应用目录删除Anaconda。查看所有版本的python所在安装目录。或者不使用软连接映射,也可使用。再次查看python映射。查看python版本。建立软连接,添加映射。

buyue 5961

BMS | 从一串到几百串硬件架构简介

锂电池在生活中越来越多的方面扮演能源的角色,除了大家熟知的电动汽车行业,在一些消费类,工业类电子产品比如手机,电动自行车,电动工具中都有应用,追本溯源今天我们一起来学习下最基础的BMS架构。 1~4串架构 以S8241为代表的无通信/无固件/模拟器件 可实现过充保护、过放保护、过流/短路,参数由器件后缀代码决定;通信类手持设备供电系统;1~4节电池保护板架构 如图使用S-8241系列保护IC,一对充放电MOS管控制充放电的回路的切断和接通,系统供电来自于电芯电压,VM引脚用于检测过...

ningvay的博客 9916

Mysql-主从复制

首先我们将多个节点共同组成一个复制组,在 执行读写(RW)事务 的时候,需要通过一致性协议层(Consensus 层)的同意,也就是读写事务想要进行提交,必须要经过组里“大多数人”(对应 Node 节点)的同意,大多数指的是同意的节点数量需要大于 (N/2+1),这样才可以进行提交,而不是原发起方一个说了算。如果操作的数据存储在同一个数据库中,那么对数据进行更新的时候,可以对记录加写锁,这样在读取的时候就不会发生数据不一致的情况。MySQL复制是异步的且串行化的,而且重启后从 接入点 开始复制。

m0_57697768的博客 409

【3天快速入门WPF】8-数据绑定基础

以下是一个简单的 WPF 数据绑定示例,使用两个TextBox控件分别表示Name和Age来进行进行数据绑定试验。运行程序后,你会看到初始界面中TextBox 中显示初始名字 “张三”,TextBox 中显示初始年龄 “25”。在 XAML 中创建一个简单的界面,包含一个 TextBox 用于输入名字,一个 TextBox 用于显示年龄。当你在 TextBox 中修改名字时,Person 对象的 Name 属性会被自动更新,反之亦然。它的主要作用是为控件及其子控件提供一个默认的数据源,用于数据绑定。

Zy100Papa的博客 969

Mysql 主从复制的作用和原理

一、什么是主从复制? 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。您看,像在mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻

最帅程序猿的博客 1449

【U-Net 数据集制作】如何制作自己的图像分割数据集?(标注与格式转换),图像分割数据集制作与转换神器

在前面的课程中,我们像搭积木一样手写了 U-Net 的网络架构。很多同学迫不及待地想把自己的图片喂进网络开始“炼丹”。但是,深度学习界有一句名言:“数据决定了模型的上限,而网络结构只是在逼近这个上限。用标注工具标出来的是 JSON 文件,怎么变成 U-Net 需要的黑白掩码(Mask)图?为什么我的 Mask 肉眼看是黑白的,一放进 PyTorch 训练就报?如何快速按 8:2 的比例把几千张图片和标签划分成训练集和验证集?

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 191

MaxScript批量修改材质、贴图名称

MaxScript批量修改材质、贴图名称1 实现效果1.1 修改前材质、贴图名称1.2 修改后2 代码 1 实现效果 1.1 修改前材质、贴图名称 1.2 修改后 2 代码 prefixName = "prefiname" maxFile = "maxfilepath" makeDir "newBitmappath" mapsPath = newbitmappath + "\\" fn formatStr index = ( str = index as string newS

郑德帅 3240

主从复制

一、什么是主从复制? 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。 二、主从复制的作用 1、架构的扩展:业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,物理服务器增加,负荷增加。 2、读写分离:使数据库能支撑更大的并发。主从只负责各自的写和读,极大程度的缓解X锁和S锁争用。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁

sanmi8276的博客 2594

RuntimeError: The current installed version of g++ (4.8.5) is less than the mininum version CUDA解决方案

本文主要介绍了RuntimeError: The current installed version of g++ (4.8.5) is less than the mininum version CUDA解决方案,希望能对学习python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

Mysql 主从复制 作用和原理

一、什么是主从复制? 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。您看,像在mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连...

Sujingkai的博客 3万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【MySQL】MySQL 数据库主从复制详解

MySQL 主从复制是实现高可用性和负载均衡的重要手段。通过合理配置和监控,可以显著提升数据库的可用性和性能,有效地管理数据同步,实现系统的弹性和鲁棒性。在实际应用中,应根据业务需求和系统架构来合理设计部署方案,并定期监控复制状态,以确保数据的一致性和完整性。了解主从复制的工作原理及其配置过程,对数据库管理员至关重要。希望本文能帮助您深入理解 MySQL 主从复制的相关知识。

人生苦短,睡觉要紧,睡醒再说 3301

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

db文件怎么修改_详解MySQL数据库的db.opt文件含义及作用

概述MySQL数据库存放数据目录里的db.opt文件是MySQL建库过程中自动生成的。细心的朋友可能会发现有时候在MySQL数据库的某些库目录下有个db.opt文件,那这个文件是干什么用的呢?如果你用记事本等编辑器打开看的话,内容很简单,是用来记录该库的默认字符集编码和字符集排序规则用的。db.optMySQL的每个数据库目录中有一个文件db.opt,该文件主要 用来存储当前数据库的默认字符集和字...

weixin_39856607的博客 2466

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MySQL主从复制详解

在实际应用中,合理配置和持续监控主从复制的状态,有助于保障数据的安全和稳定性,提高数据库整体的可用性。MySQL主从复制基于主从模型工作,其中主服务器(Master)负责处理写操作(INSERT、UPDATE、DELETE等),而从服务器(Slave)则复制主服务器的数据变更。:主服务器将二进制日志发送给从服务器,从服务器接收并应用这些日志,以重放主服务器上的写操作,保持数据同步。:连接到主服务器,并从其获取二进制日志文件,然后将这些日志应用到自身的数据上,保持与主服务器数据的同步。

qq_52645134的博客 7646

mysql主从复制原理_Mysql主从复制作用和工作原理详解

一、什么是主从复制主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主...

weixin_42313980的博客 618

mysql主从 作用_Mysql主从复制作用和工作原理详解

一、什么是主从复制主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主...

weixin_39603573的博客 221

mysql主从作用_Mysql主从复制作用和工作原理详解

Mysql主从复制作用和工作原理详解发布时间:2020-10-22 17:46:08来源:脚本之家阅读:103作者:荆襄铁卫一、什么是主从复制主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特...

weixin_29210727的博客 269

MySQL主从复制搭建详解

主从复制可以对数据备份,实现高可用,主服务器挂了,从服务器还可以使用。通过读写分离,提高数据库负载。 但是不建议有太多的从节点,因为所有从节点都需要同步主节点的数据,如果数据太多就会造成延时问题,也就引发了数据的一致性问题。 MySQL主从复制主要依靠二进制日志文件来实现,将主数据库中的DDL和DML操作通过二进制日志(BINLOG)传输到从数据库上,然后将这些日志重新执行(重做)。从而使得从数据库的数据与主数据库保持一致。...

程序员大佬超的博客 3427

Mysql之主从复制

MySQL的主从复制()是一种数据复制解决方案,将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而是的从库和主库的数据保存同步。MySQL支持将数据从一个MySQL服务器(主服务器)复制到一个或多个其他MySQL服务器(从服务器),从库同时也可以作为其他从服务器的主库,实现链状复制。MySQL主从复制的优点主要包含以下三个方面:主库出现问题,可以快速切换到从库提供服务;实现读写分离,降低主库的访问压力;

2301_77358096的博客 4924

【MySQL】数据库——主从复制和读写分离

读写分离,主数据库处理事务性增、改、删操作从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

2401_83330816的博客 3597

MySQL-主从复制

MySQL-主从复制

我姓谭却弹不死你的博客 1416

MySQL主从复制面试之作用和原理

转自: https://blog.youkuaiyun.com/DarkAngel1228/article/details/80004222 一、什么是主从复制? 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。 二、主从复制的作用(好处,或者说为什么要做主从)重点! 1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免...

qq_32534441的博客 1435
上一篇: 数据库系列—MySQL 的二进制日志恢复数据库数据
下一篇: 数据库系列——MySQL主从复制配置
Coder_Boy_
博客等级 码龄10年 2804粉丝 819原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值