【MySQL】MySQL中的复制技术是什么?它有哪些组成部分?

news2024/11/17 7:34:29

  • 什么是复制(Replication)
  • MySQL复制架构
  • 感谢 💖

什么是复制(Replication)

复制技术是MySQL高级特性的基础。它可以将数据从一个 MySQL 实例复制到另一个实例,从而实现数据的同步和备份。

MySQL复制架构

以下是MySQL复制架构的基本组成部分和工作原理:

  • 主服务器 (master) 将所有数据和结构更改记录到二进制日志中。
    • 数据更改就是DML执行的更改,而数据结构就是数据字典的更改。
    • 二进制日志是一种二进制格式的日志文件,记录了数据库中发生的所有重要更改,包括插入、更新、删除等操作,以及数据库结构的更改。
    • 二进制日志的格式可以是基于语句的(Statement-Based)、基于行的(Row-Based)或混合的(Mixed-Based),具体的格式由 MySQL 配置中的 binlog_format 参数决定。不同的格式适用于不同的使用情景,可以在配置文件中进行设置。
  • 从属服务器 (slave) 从主服务器请求二进制日志并在本地应用其内容。
    • 从属服务器是主服务器的副本,它们用于复制主服务器上的数据和结构更改。
    • 主服务器将二进制日志的内容发送给从属服务器,从属服务器将这些事件应用到自己的数据库中,以保持与主服务器的数据同步。
    • 从属服务器还记录了每个事件的状态,以便在发生服务器重启、网络故障或其他故障情况时,可以从停止的位置继续复制,而不必重新复制所有数据。
  • 复制线程:从属服务器上运行的复制线程负责连接到主服务器并请求二进制日志,然后将事件应用到本地数据库。复制线程会维护复制的状态,以便在发生故障或中断时可以从停止的位置继续复制。
  • 复制拓扑:MySQL复制支持多种复制拓扑,包括一对多关系、中继从属服务器、双向复制、循环复制和多源复制等。这些拓扑允许数据更改在多个服务器之间传播,以满足不同的需求。
    • 一对多关系:一个主服务器可以将日志传送给许多从属服务器。每个从属服务器从一个主服务器读取日志。
      在这里插入图片描述

    • 中继从属服务器:一个中继从属服务器及时上一级的slave,又是下一级的master。在这种情况下,主服务器的更改会传播到更多的从属服务器。
      在这里插入图片描述

    • 更复杂的拓扑:

      • 双向 (bi-directional) 拓扑具有两个主服务器,每个主服务器是另一个主服务器的从属服务器。双向拓扑也是一种循环拓扑。第一个服务器上的更改会复制到第二个服务器上,同理第二个服务器的更改也会复制到第一个服务器上。
      • 循环 (circular) 拓扑具有任意数量的服务器。每个服务器是一个主服务器并且是另一个主服务器的从属服务器。对任何主服务器的更改将复制到所有主服务器。
      • 多源 (Multisource) 复制允许一个从属服务器接收来自多个主服务器的事务。
        在这里插入图片描述

整个复制的过程简单来说就是:主服务器中有一个转储线程,它把二进制日志发送给从属服务器,从属服务器的IO线程就会将二进制日志收集起来重新生成一个二进制日志,叫做中继日志,接着sql线程就会实施应用。

感谢 💖

好啦,这次的分享就到这里,感谢大家看到这里🤞

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

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

相关文章

Ansys Zemax | 如何设计光谱仪——理论依据

光谱学是一种无创性技术,是研究组织、等离子体和材料的最强大工具之一。本文介绍了如何利用近轴元件建立透镜—光栅—透镜(LGL)光谱仪模型,使用OpticStudio的多重结构( Multiple Configurations )、评价函数 ( Merit Functions )和ZPL宏等先进功能完成了…

八、伯努利朴素贝叶斯算法(Bernoulli NB,Bernoulli Naive Bayes)(有监督学习)

Bernoulli Naive Bayes:用于多元伯努利模型的Naive Bayes分类器 一、算法思路 与多项式分类器一样,该分类器也适用于离散数据。不同之处在于,多项式分类器适用于出现次数,而伯努利分类器则适用于二进制/布尔特征。 二、官网API…

Unity当中的灯光类型

文章目录 前言一、Directional平行光二、Point点灯三、Spot 聚光灯四、Area面光灯,只用于烘培 前言 Unity当中的灯光类型 一、Directional平行光 Unity当中最重要的灯管类型,类似现实中的太阳光 二、Point点灯 类似现实中的灯泡,萤火虫&a…

Celery结合flask完成异步任务与定时任务

Celery 常用于 web 异步任务、定时任务等。 使用 redis 作为 Celery的「消息代理 / 消息中间件」。 这里通过Flask-Mail使用qq邮箱延时发送邮件作为示例 pip install celery pip install redis pip install Flask-Mail1、使用flask发送邮件 使用 Flask-Mail 发送邮件需要进行…

1688-阿里巴巴批发网(获取优惠券信息)

item_get_app-获取1688app上原数据 为了进行电商平台 的API开发,首先我们需要做下面几件事情。 1)开发者注册一个账号 2)然后为每个1688 应用注册一个应用程序键(App Key) 。 3)下载1688 API的SDK并掌握基本的API基…

惠普P1108激光打印机报错光束探测错误检修

在使用打印机的过程中,有时候会遇到光束探测错误的问题,导致打印机无法正常工作。这个问题可能是由多种原因引起的,包括硬件故障、驱动程序错误、操作系统问题等。在这里,我将为您提供一些解决光束探测错误的方法。 故障描述&…

SpringBoot 学习(七)Swagger

7. Swagger 7.1 简介 便于前后端集成联调RestFul Api 文档在线生成工具 > Api 文档与 Api 定义同步更新直接运行&#xff0c;在线测试 Api 接口 7.2 springboot 集成 swagger (1) 导入依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger…

清华用7个ChatGPT模拟《狼人杀》,结果出乎意料!

为了验证大语言模型的沟通、规划、反思等拟人化能力&#xff0c;清华研究团队发布了一篇名为“探索大语言模型在交流游戏中的应用&#xff1a;《狼人杀》实验”的研究论文。 结果显示&#xff0c;通过ChatGPT&#xff08;GPT -turbo-0301&#xff09;构建的7个玩家&#xff0c…

【高云FPGA系列教程(11):MultiButton按键驱动模块移植】

文章目录 1. MultiButton简介2. MultiButton代码获取3. MultiButton移植4. 测试与运行本文是高云FPGA系列教程的第11篇文章。 1. MultiButton简介 MultiButton, 一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构…

nssm部署jar包

nssm部署jar包 1、软件下载 官方传送门 csdn下载地址 2、安装服务 F: cd F:\服务启动目录 set JAVA_HOMEF:\Program Files\Java\jdk1.8.0_181 set CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar; set Path%JAVA_HOME%\bin; java -Dfile.encodingutf-8 -…

解决Vue设置图片的动态src不生效的问题

一、问题描述 在vue项目中&#xff0c;想要动态设置img的src时&#xff0c;此时发现图片会加载失败。在Vue代码中是这样写的&#xff1a; 在Vue的data中是这样写的&#xff1a; 我的图片在根目录下的static里面&#xff1a; 但是在页面上这个图片却无法加载出来。 二、解决方案…

使用原生html<table>构造复杂table表

<table border data-sort"sortDisabled" align"center" class"table"><tbody><tr class"textarea1"><td rowspan"1" colspan"2" class"background-gray"><label>日期<…

更新andriod studio版本,项目编译报could not find org.junit.jupiter:junit-jupiter

原本使用Android Studio 版本是4.1.1&#xff0c;现更新为 点击build -》 build bundle -》build apk&#xff0c;项目报 Could not determine the dependencies of task :app:compileDebugUnitTestJavaWithJavac. > Could not resolve all task dependencies for configur…

前脚收费,后脚道歉?Unity收费新规引众怒,Epic承诺虚幻引擎永久免费

&#xfeff;当你还在纠结开发游戏用Unity引擎还是UE虚幻引擎的时候&#xff0c;Unity已经给游戏开发领域重重一拳。 &#xfeff;Unity作为一款全球范围内广泛使用的游戏引擎&#xff0c;因其价格亲民且灵活而备受众多开发者的青睐。然而在9月12日&#xff0c;Unity突然宣布计…

分析大疆官网根据ip自动跳转到指定域名

如果cookie存在region且有效&#xff0c;跳转到指定域名&#xff0c; 如果cookie存在region且无效&#xff0c;跳转到默认域名&#xff0c; 如果禁用cookie或者cookie中没有region&#xff0c;根据ip自动判断所在地区&#xff0c;跳转到指定域名 1、浏览器地址栏输入dji.com&am…

2018-2022年盟浪 ESG数据

2018-2022年盟浪 ESG数据 1、时间&#xff1a;2018-2022年 2、指标&#xff1a;证券代码、证券简称、盟浪ESG评级、省份、城市、所属证监会行业名称[交易日期] 最新收盘日[行业级别] 大类行业、所属证监会行业代码[交易日期] 最新收盘日[行业级别] 大类行业 3、范围&#xf…

图像练习-计算平行线距离opencv(03)

原图 //对输入图像进行细化 cv::Mat ThinLine(const cv::Mat& matsrc, const int& iterations) {//CvSize size cvGetSize(src);cv::Mat dst matsrc.clone();//拷贝一个数组给另一个数组int _iwidth dst.cols;int _iheight dst.rows;int n 0, i 0, j 0;for (n …

【每日一题】658. 找到 K 个最接近的元素

658. 找到 K 个最接近的元素 - 力扣&#xff08;LeetCode&#xff09; 给定一个 排序好 的数组 arr &#xff0c;两个整数 k 和 x &#xff0c;从数组中找到最靠近 x&#xff08;两数之差最小&#xff09;的 k 个数。返回的结果必须要是按升序排好的。 整数 a 比整数 b 更接近 …

抖音SEO矩阵系统源码开发搭建

1. 确定需求和功能&#xff1a;明确系统的主要目标和需要实现的功能&#xff0c;包括关键词研究、短视频制作、外链建设、数据分析、账号设置优化等方面。 2. 设计系统架构&#xff1a;根据需求和功能确定系统的架构&#xff0c;包括前端、后端、数据库等部分的设计&#xff0…

计算机组成原理之硬件的内部结构,拆开单独的硬件,查看硬件组成部分的结构和功能。

大家好&#xff0c;欢迎阅读《计算机组成原理》的系列文章&#xff0c;本系列文章主要教内容是从零学习计算机组成原理&#xff0c;内容通俗易懂&#xff0c;大家好好学习吧&#xff01;&#xff01;&#xff01; 更多的优质内容&#xff0c;请点击以下链接查看哦~~ ↓ ↓ ↓ …