Mysql复制类型、主从复制集群种类、主从复制原理

news2024/11/26 13:29:04

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 主从复制原理
  • 主从复制原理图
  • 一、概述
  • 二、为什么要读写分离?
  • 三、mysql支持的复制类型
      • 1、基于语句的复制statement:
      • 2、基于行的复制row:
      • 3、混合类型的复制mixed:
  • 四、MYSQL主从复制集群解决的问题
      • (1) 数据分布 (Data distribution )
      • (2) 负载平衡(load balancing)
      • (3) 备份(Backups)
      • (4) 高可用性和容错行 ( High availability and failove )
  • 五、MYSQL主从复制集群种类
      • 一主一从/一主多从
      • 多主一从
      • 双主复制:
      • 级联复制:
  • 六、Replication(复制


主从复制原理

1) Slave 上面的IO 线程连接上 Master,并请求从指定日志文件(二进制日志)的指定位置(或者从最开始的日志)之后的日志内容。  2) Master 接收到来自 Slave 的 IO 线程的请求后,通过负责复制的 IO 线程根据请求信息读取指定日志指定位置之后的日志信息,返回给 Slave 端的 IO 线程。
    返回信息中除了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 Binary Log 文件的名称以及在 BinaryLog 中的位置。
  3)Slave 的 IO 线程接收到信息后,将接收到的日志内容依次写入到 Slave 端的RelayLog (中继日志文件)文件(MySQL-relay-bin.xxxxxx)的最末端,并将读取到的Master 端的bin-log 的文件名和位置记录到master-info 文件中,
    以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log 的哪个位置开始往后的日志内容,请发给我” 。  4)Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后,会马上解析该 Log 文件中的内容成为在 Master 端真实执行时候的那些可执行的 Query 语句,并在自身执行这些 Query。
    这样,实际上就是在 Master 端和 Slave 端执行了同样的 Query,所以两端的数据是完全一样的。

主从复制原理图

在这里插入图片描述

一、概述

Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更 新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服 务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。

二、为什么要读写分离?

高并发场景下MySQL的一种优化方案,依靠主从复制使得MySQL实现了数据复制为多份,增强了抵抗 高并发读请求的能力提升了MySQL查询性能同时,也提升了数据的安全性。当某一个MySQL节点,无论是主库还是从库故障时,还有其他的节点中存储着全量数据,保证数据不会丢失
主库将变更写binlog日志,然后从库连接到主库后,从库有个I/O线程,将主库的binlog日志拷贝到本地,写入一个中继日志。 接着从库中有一个SQL线程会从中继日志读取binlog,然后执行binlog日志中的内容。即在本地再次执行一遍SQL,确保跟主库的数据相同。

简单点说:读写分离的实现是基于主从复制架构:单主单从或一主多从,只写主库,主库会自动将数据同步到从库。

三、mysql支持的复制类型

1、基于语句的复制statement:

在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。如果要用精确复制时,还是建议使用基于行的复制。

2、基于行的复制row:

把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持

3、混合类型的复制mixed:

默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。

具体基于哪种类型其实还是要看你的BINLOG日志类型。

四、MYSQL主从复制集群解决的问题

MySQL复制技术有以下一些特点:

(1) 数据分布 (Data distribution )

(2) 负载平衡(load balancing)

(3) 备份(Backups)

(4) 高可用性和容错行 ( High availability and failove )

五、MYSQL主从复制集群种类

一主一从/一主多从

在这里插入图片描述

一主一从和一主多从是我们现在见的最多的主从架构,使用起来简单有效,不仅可以实现简单的HA,而且还能读写分离,进而提升集群的并发能力。这是公司里使用最多的主从复制集群模式。


多主一从

多主一从:多主一从可以将多个 MySQL 数据库备份到一台存储性能比较好的服务器上。
在这里插入图片描述


双主复制:

双主复制,也就是可以互做主从复制,每个 master 既是 master,又是另外一台服务器的 salve。这样任何一方所做的变更,都会通过复制应用到另外一方的数据库中。
在这里插入图片描述


级联复制:

级联复制模式下,部分 slave 的数据同步不连接主节点,而是连接从节点。因为如果主节点有太多的从节点,就会损耗一部分性能用于 replication ,那么我们可以让 3~5 个从节点连接主节点,其它从节点作为二级或者三级与从节点连接,这样不仅可以缓解主节点的压力,并且对数据一致性没有负面影响。
在这里插入图片描述

六、Replication(复制

这里是引用

)管理和排错

1)show master status ; 查看master的状态, 尤其是当前的日志及位置
2)show slave status; 查看slave的状态.
3)reset slave (all); 重置slave状态,用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件.会忘记 主从关系,它删除master.info文件和relay-log.info 文件
4)start slave ; 启动slave 状态(开始监听mastter的变化)
5)stop slave; 暂停slave状态;
6)set global sql_slave_skip_counter = n 跳过导致复制终止的n个事件,仅在slave线程没运行的状况下使用

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

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

相关文章

项目经理必知的45个项目管理术语

大家好,我是老原。 项目经理成败与否,80%取决于沟通。 有不少刚入门的项目经理小白,听到自己的上级或者别的项目经理大佬就项目问题进行探讨时,他们时不时就冒出个专业术语,都是一脸懵。 这时候,也不好意…

HCIP学习--路由策略使用实验

未完成 一、实验拓扑 二、实验需求 7的环回不宣告到ospf中,重发布直连到ospf中,且这步操作要在双向重发布前面 两个协议间进行多点双向重发布 R7的环回没有宣告在OSPF协议中,而是后期重发布进入的 解决环路,所有路径选择最优&a…

npm install 中 --save 和 --save-dev 是什么?

npm,全名 Node Package Manager,套件管理工具,package.json 会记下你在项目中安装的所有套件。 假设在项目中安装 lodash npm i --save lodash这样在 dependencies 中会出现: 如果修改了导入方式: npm i --save-dev …

FreeRTOS(动态内存管理)

资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、动态内存管理介绍 1、heap_1 2、heap_2 3、heap_3 4、heap_4 5、heap_5 二、动态内存总结与应用 1、heap_1 2、heap_4 3、heap_5 三、内存管理编程测试 1、heap_4 2、h…

变形金刚:从零开始【01/2】

一、说明 在我们的日常生活中,无论你是否是数据科学家,你都在单向地使用变压器模型。例如。如果您使用的是 ChatGPT 或 GPT-4 或任何 GPT,那么在为您回答问题的框中是变压器的一部分。如果您是数据科学家或数据分析师,则可能正在使…

【Linux】IO多路转接——select接口

目录 I/O多路转接之select select初识 select函数 socket就绪条件 select基本工作流程 select服务器 select的优点 select的缺点 select的适用场景 I/O多路转接之select select初识 select是系统提供的一个多路转接接口。 select系统调用可以让我们的程序同时监视多…

vmagent获取node-exporter配置

vmagent 使用以下命令添加图表 helm 存储库: helm repo add vm https://victoriametrics.github.io/helm-charts/helm repo update 列出vm/victoria-metrics-agent可供安装的图表版本: helm search repo vm/victoria-metrics-agent -l victoria-met…

iObit Uninstaller 最新版13 Pro更新了什么?

iObit Uninstaller 专业且易用的 Windows 卸载程序,它可以轻松删除不需要的程序,插件和 Windows 应用程序,还可以对电脑旧的应用一键更新。 功能和特点 安装监视器 安装监视器会检测并记录安装中的所有系统更改,以确保在将来彻底…

基于Mysqlrouter+MHA+keepalived实现高可用半同步 MySQL Cluster项目

目录 项目名称: 基于Mysqlrouter MHA keepalived实现半同步主从复制MySQL Cluster MySQL Cluster: 项目架构图: 项目环境: 项目环境安装包: 项目描述: 项目IP地址规划: 项目步骤: 一…

java不支持发行版本5

这篇文章主要给大家介绍了关于如何解决java错误:不支持发行版本5的相关资料,发行版本5是Java5,已经是十多年前的版本了,现在已经不再被支持,需要的朋友可以参考下 − 目录 问题描述:解决方法:永久解决方法:总结 问题描述: 在i…

小红书内容+直播数据分析,品牌打开秋天的正确方式

秋天的第一杯奶茶,你喝了吗?不知不觉,秋日以至。季节轮转,随之而来的还有变化的消费需求。目前,各大社媒已逐渐开启关于秋天的讨论,新的季节,品牌要如何布局内容呢?本期,…

点成案例丨比浊仪用于乳酸菌抑菌活性测定

乳酸菌概述 自1929年英国科学家弗莱明发现青霉素以来,抗生素为人类医学的进步做出了巨大贡献。然而,抗生素在临床上广泛且持续的使用导致病原微生物产生了耐药性。目前,病原微生物对抗生素的耐药性正在威胁人们的健康,寻找具有抑…

Scratch 之 制作超丝滑 FNF 推条

这个教程是不用画笔的,所以不用担心推条是最后一层了! 导入素材 你以为真是这样吗?NO,NO,NO,其实是这样的 没错,中间是空的!中间是空的!中间是空的!&#xf…

【Gazebo安装教程】2023年最新安装全流程详解!

安装 实验环境:ubuntu22.04LTS 安装 Gazebo 首先我们需要安装必须的工具 sudo apt-get update sudo apt-get install lsb-release wget gnupg之后修改源,并 update 一下来更新 sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/shar…

实现无限创建敌人。(Unity)

首先我们创建一个空物体GameObject产怪点改名为Enemypoint,这个点是敌人出现的位置。我们首先在空物体里面的transform组件中重置这个点的位置为0,并且给这个点设置一个颜色,方便找到这个点。如果给这个点设置一个位置,修改它的tr…

移动硬盘只显示盘符不显示容量怎么办

在使用移动硬盘时,有时候可能会遇到移动硬盘只显示盘符而不显示容量的困扰。这种情况可能会引起数据无法读取或无法保存的问题,给用户带来不便。本文将详细解释这个问题的原因,并提供一些解决方法,让您能够轻松恢复移动硬盘的容量…

高忆管理:真金白银落到实处 27家沪市公司更新回购增持“进度条”

或抛出方案,或更新进展,一大批沪市公司及其股东正加速跑在回购增持的路上。仅8月14日晚,沪市便有27家上市公司会集发表回购增持类公告,以真金白银持续提振商场决心。 据上海证券报记者计算,到现在,在回购方…

网络基础--ARP协议介绍

1、ARP作用 ARP( Address Resolution Protocol,地址解析协议)是将 IP 地址解析为以太网 MAC 地址(或称物理地址)的协议。在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必…

云上社群学习系统部分接口设计详解

目录 一、项目简介 二、技术选型 三、数据库设计 四、接口设计及思考 回复帖子部分 4.1 回复帖子 4.1.1.1 实现逻辑 4.1.1.2创建Service接⼝ 4.1.1.3 实现Service接⼝ 4.1.1.4 实现Controller 4.1.1.5 测试接口 4.1.1.6 实现前端页面 4.2 点赞帖子 4.2.1.1 参数要求…

MySQL 根据多字段查询重复数据

MySQL 根据多字段查询重复数据 在实际的数据库应用中,我们经常需要根据多个字段来查询重复的数据。MySQL 提供了一些方法来实现这个功能,让我们能够快速准确地找到和处理重复数据。本文将介绍如何使用 MySQL 来根据多字段查询重复数据,并提供…