iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySql中主从复制机制的原理是什么
  • 649
分享到

MySql中主从复制机制的原理是什么

2023-06-14 10:06:46 649人浏览 八月长安
摘要

今天就跟大家聊聊有关MySql中主从复制机制的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。主从复制机制Mysql基于binlog实现主从复制,从节点跟踪并获取主节点bin

今天就跟大家聊聊有关MySql中主从复制机制的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

主从复制机制

Mysql基于binlog实现主从复制,从节点跟踪并获取主节点binlog中最新更新并在自身进行重放,从而实现复制主节点数据。

下图是mysql主从复制过程的示意图。在整个过程中涉及三个线程,他们的职责分别是:

  • 主节点binlog dump线程:该线程在从节点连接上主节点后创建,负责向从节点发送binlog中新写入的数据。在读取binlog时,dump线程会首先获取binlog的,并在读取完毕后立刻释放,然后将读取到的数据发送至从节点。

  • 从节点I/O线程:从节点I/O线程职责为向主节点发送数据同步的请求,接收主节点发送的数据并将其写入relay-log。

  • 从节点sql线程:该线程从relay-log中读取数据更新并进行重放。

MySql中主从复制机制的原理是什么

异步复制

默认情况下,MySQL的主从复制是异步复制,在这种机制下,主节点会在完成本地日志写入后立刻响应客户端的请求,从节点的数据复制过程异步执行。

很明显,在这种机制下面,由于复制过程并不会影响主节点对客户端请求的响应,因此,相比于单节点,并不会造成整体性能上的明显损失。

但是,在这种机制下面,如果数据在主节点完成提交而未同步至从节点时主节点宕机,此时如果发生主从切换并写入新的数据,可能导致数据丢失或不一致。

半同步复制(semisynchronous replication)

从5.6版本开始,MySQL支持半同步复制,这种机制与异步复制相比主要有如下区别:

主节点在收到客户端的请求后,必须在完成本节点日志写入的同时,还需要等待至少一个从节点完成数据同步的响应之后(或超时),才会响应请求。

从节点只有在写入relay-log并完成刷盘之后,才会向主节点响应。

当从节点响应超时时,主节点会将同步机制退化为异步复制。在至少一个从节点恢复,并完成数据追赶后,主节点会将同步机制恢复为半同步复制。

可以看出,相比于异步复制,半同步复制在一定程度上提高了数据的可用性,在未退化至异步复制时,如果主节点宕机,此时数据已复制至至少一台从节点。

同时,由于向客户端响应时需要从节点完成响应,相比于异步复制,此时多出了主从节点上网络交互的耗时以及从节点写文件并刷盘的耗时,因此整体上集群对于客户端的响应性能表现必然有所降低。

主从复制格式

由于MySQL的复制机制是基于binlog的,因此binlog的格式就决定了主从复制的格式。binlog有基于行的和基于语句两种,从而复制也有两种对应的格式。

Statement-Based Replication(SBR)

对于基于语句的复制机制,binlog仅记录所执行的语句。这种方式,有如下优点:

  • 自从3.23版本就存在,经过长期验证的成熟技术

  • 写入日志文件的数据更少,这意味着更少的文件写入和网络传输消耗,从而整体上可以更快的完成主从复制,提升性能表现。

  • 日志文件记录了所有数据库上执行的语句,可以用来进行审计等用途

有如下缺点:

  • 用户自定义函数(UDF)以及执行结果不确定的函数无法进行复制

  • 进行数据更新时,需要比基于行的复制更多的行锁

  • 对于如先插入后更新式的复杂语句,从节点需要进行完全的对应重放,而基于行格式的复制只需要执行最终结果即可

Row-Based Replication(RBR)

基于行的复制机制下,对应binlog也是基于行的,这时每次数据更新当写入binlog时,都被转化所有受影响行的变化。

这种复制方式,有如下优点:

  • 所有数据变化都可以被安全的复制,不会受到UDF以及特殊函数的影响。

  • 大部分DBMS都采用这种复制方式,知识迁移成本低。

  • 进行数据更新时,所需要的行锁更少,从而可以获取更高的性能表现。

有如下缺点:

  • 在涉及大数据量的DML时,基于行的日志将会产生大量的日志数据,大数据量在日志文件写入、网络传输方面都意味着更长的时间,从而可能导致整体性能表现显著变差,同时也可能导致并发问题。

  • 无法通过日志查看所执行的语句,同时也无法获知从节点上执行的语句。

看完上述内容,你们对MySql中主从复制机制的原理是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MySql中主从复制机制的原理是什么

本文链接: https://www.lsjlt.com/news/269969.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySql中主从复制机制的原理是什么
    今天就跟大家聊聊有关MySql中主从复制机制的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。主从复制机制MySQL基于binlog实现主从复制,从节点跟踪并获取主节点bin...
    99+
    2023-06-14
  • MySQL中主从复制的原理是什么
    MySQL中主从复制的原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。0. 主从复制首先主从复制是什么简单来说是让一台MySQL服务器...
    99+
    2024-04-02
  • mysql主从复制的原理是什么
    mysql主从复制的原理是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据...
    99+
    2023-06-15
  • MySQL的主从复制原理是什么
    这篇“MySQL的主从复制原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL的主从复制原理是什么”文章吧。前...
    99+
    2023-07-02
  • MySQL主从架构的复制原理是什么
    MySQL主从架构的复制原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 复制概述Mysql内建的复制功能是构建大型,高性能...
    99+
    2024-04-02
  • MySQL主从复制的底层原理是什么
    这篇文章给大家介绍MySQL主从复制的底层原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。主从复制原理(1) Master 将数据改变记录到二进制日志(binary log)中...
    99+
    2024-04-02
  • mysql主从复制的原理有什么
    mysql主从复制的原理有什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明mysql数据库提供了主从备份机制,实际上是将主数据库的所有数据同时写入备份...
    99+
    2023-06-15
  • MySQL中复制机制的原理是什么
    MySQL中复制机制的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。背景介绍复制,就是对数据的完整拷贝,说到为什么要...
    99+
    2024-04-02
  • Redis主从复制原理是什么
    Redis主从复制原理是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!一、什么是Redis主从复制?主从复制就是现在有...
    99+
    2024-04-02
  • kafka主从复制的原理是什么
    Kafka的主从复制是通过Leader-Replica模式实现的。主要原理如下: Kafka集群中的每个主题分区都有一个Leade...
    99+
    2023-10-27
    kafka
  • mongodb主从复制的原理是什么
    MongoDB的主从复制是一种数据复制机制,它允许将数据从一个主节点复制到一个或多个从节点。主从复制的原理如下: 主节点(Prim...
    99+
    2024-04-09
    mongodb
  • Redis主从复制的原理是什么
    Redis主从复制是通过将主节点的数据同步复制到从节点来实现数据的备份和高可用性。实现主从复制的原理主要包括以下几个步骤: 从节...
    99+
    2024-03-11
    Redis
  • Couchbase主从复制机制是什么
    Couchbase的主从复制机制是一种用于在分布式数据库集群中实现数据复制和数据同步的技术。在Couchbase中,主从复制机制由两...
    99+
    2024-04-09
    Couchbase
  • 什么是MySQL主从复制
    这篇文章主要介绍“什么是MySQL主从复制”,在日常操作中,相信很多人在什么是MySQL主从复制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是MySQL主从复制”的疑惑...
    99+
    2024-04-02
  • MySql主从复制是什么
    小编给大家分享一下MySql主从复制是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!一、什么是Mysql主从复制MySQL主从复制是其最重要的功能之一。主从复制是指一台服务器充当主数据库服...
    99+
    2024-04-02
  • MySQL中主从复制的原理分析
    今天就跟大家聊聊有关MySQL中主从复制的原理分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.1.1 MySQL主从复制介绍MySQL数据库支...
    99+
    2024-04-02
  • MySQL主从复制延迟原因是什么
    本篇内容主要讲解“MySQL主从复制延迟原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL主从复制延迟原因是什么”吧! ...
    99+
    2024-04-02
  • Redis主从复制的底层原理是什么
    Redis主从复制的底层原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。复制原理1.复制过程复制的过程步骤如下:1、从...
    99+
    2024-04-02
  • MySQL主从复制的原理分析
    本篇文章为大家展示了MySQL主从复制的原理分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。主从复制是怎么实现的呢更新语句会记录 binlog,它是一种逻辑日志。...
    99+
    2024-04-02
  • MySQL主从复制的原理和注意事项是什么
    这篇文章主要介绍了MySQL主从复制的原理和注意事项是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。主从复制原理(1) Master 将数据...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作