首页 > 数据库 >MySQL(九):MySQL主从复制原理

MySQL(九):MySQL主从复制原理

时间:2024-03-12 15:25:52浏览次数:37  
标签:主库 主从复制 Slave Thread MySQL 原理 节点

1、什么是MySQL主从复制

  MySQL主从复制:数据从一个主节点数据库复制到至少一个从节点数据库。MySQL采用异步复制方式同步数据,从节点不需要一直访问主数据库更新自身数据。

2、为什么需要MySQL主从复制

2.1、保证系统的高可用

  在复杂业务系统中,某些频繁的操作会导致MySQL锁表,影响业务的正常进行。使用主从复制,进行读写分离,主库写、从库读,主库的锁表不会影响从库的读取,提高系统的可用性。

2.2、保证系统的高性能

  数据库的I/O处理往往是系统的瓶颈,当I/O的访问频率过高,单机无法满足性能要求,使用主从复制进行多库存储,降低磁盘I/O访问的频率,可提高单个机器的I/O性能。

3、MySQL主从复制原理

  主从复制原理图:

  0

  1、Master主服务器将应用程序的DML操作记录到二进制文件binlog中,即将数据的改变记录到二进制文件中;

  2、Slave周期探测Master中二进制binlog文件是否发生改变,若发生改变,Slave服务器则创建I/O Thread请求Master主库发生变化的二进制binlog文件文件;

  3、Master主库在接收到Slave的I/O请求,为每个I/O请求对应的开启dump线程,同步主库的binlog文件至Slave服务器;

  4、Slave从库服务器通过I/O Thread接收主库的二进制文件,保存至Slave的中继日志relay-log文件中;

  5、Slave节点开启一个SQL线程,从relay-log中继日志中读取数据持久化至从节点,使得主从节点数据保持一致;

  6、Slave从节点数据同步完成,I/OThread和SQLThread进入休眠状态,等待Schedule Thread探测主库的binlog发生改变后被唤醒。

从节点有两个线程:I/O Thread、SQL Thread,这一点从从节点的日志中就可以发现:

  0

 

标签:主库,主从复制,Slave,Thread,MySQL,原理,节点
From: https://www.cnblogs.com/RunningSnails/p/18068373

相关文章

  • 拆解跨天时间(mysql游标循环)-在转来的基础上增加一些更改
    尊重作者,原文链接:https://blog.csdn.net/liminghui4321/article/details/102763052原始数据表:需要将上面的时间段转成每一天的记录: 在原文的基础上作了一些更改:1、在表sales上增加一个字段bj:altertablesalesaddcolumnbjintDEFAULT0null;2、存储过程基础上增加了......
  • MySQL(八):MySQL之索引
    1、MySQL索引及作用MySQL官网:索引(Index)是帮助MySQL高效获取数据的数据结构。索引是数据结构。一个索引就是一个B+树,加快数据查询的速度。一个select查询语句在执行过程中一般最多能使用一个辅助索引,即使在where条件中用了多个辅助索引。2、InnoDB存储引擎支持的常见索......
  • MYSQL语法:左连接、右连接、内连接、全外连接
    概念leftjoin(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。rightjoin(右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。innerjoin(内连接):只返回两个表中连接字段相等的行。fulljoin(全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录......
  • MySQL 精通与优化
    目录1.数据库管理与优化1.1.用户管理和权限控制1.2.数据库的备份和恢复1.3.数据库的性能优化和调优1.4.锁定和事务管理2.高可用性与容错性2.1.主从复制(Master-SlaveReplication)2.2.主主复制(Master-MasterReplication)2.3.数据库集群技术3.实践与项目案例3.1.......
  • typeorm mysql blob 存储base64
    typeormmysqlblob存储base64在TypeORM中,要将Base64数据存储到MySQL数据库的BLOB字段,您需要先将Base64字符串转换为Buffer,然后使用TypeORM的实体管理器来保存。以下是一个简单的例子:首先,定义您的实体:  import{Entity,PrimaryGeneratedColumn,Column}from......
  • mysql for update是锁表还是锁行
    转载至我的博客https://www.infrastack.cn,公众号:架构成长指南在并发一致性控制场景中,我们常常用forupdate悲观锁来进行一致性的保证,但是如果不了解它的机制,就进行使用,很容易出现事故,比如forupdate进行了锁表导致其他请求只能等待,从而拖垮系统,因此了解它的原理是非常必要的,......
  • WSL基本使用,Ubuntu->docker->MySQL8
    适用于Linux的Windows子系统(WSL)可让开发人员直接在Windows上按原样运行GNU/Linux环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。基本使用安装#此命令将启用运行WSL并安装Linux的Ubuntu发行版所需的功能。wsl--inst......
  • 权限概念、权限提升概念以及权限提升的分类和目的 Windows 提权的基础原理是了解操作
    关于权限概念、权限提升概念以及权限提升的分类和目的,以下是一些基本信息供您参考:权限概念:权限是指系统或应用程序授予用户或进程执行某些操作或访问资源的能力。权限通常按照用户的身份、角色或组织结构来管理,以确保系统安全和数据保护。权限提升概念:权限提升是指用......
  • 在Linux中,nginx反向代理和负载均衡实现原理是什么?
    在Linux环境中,Nginx实现反向代理和负载均衡是通过编写和配置Nginx服务器的配置文件来完成的。以下是如何利用Nginx实现这两种功能的基本原理和步骤:1.反向代理实现原理:反向代理是一种服务端代理,它允许Nginx服务器接收来自客户端的所有请求,并根据配置规则将这些请求透明地转发给......
  • Unity3D 逻辑服的ECS框架设计架构与原理详解
    ECS(Entity-Component-System)是一种游戏开发架构模式,它将游戏对象划分为实体(Entity)、组件(Component)和系统(System),并通过数据驱动的方式来实现游戏逻辑。在Unity3D中,ECS框架的设计架构与原理是非常重要的,本文将详细介绍Unity3D逻辑服的ECS框架设计架构与原理,并给出技术详解以及代码实......