思想:

  1. 主服务器(master) 接受用户的内容更新,并写入bin-log中
  2. 一个或多个从服务器(slave) ,接受来自 主服务器的 binlog 日志文件(I/O 线程), 解析出sql(sql 线程),
  3. 重新更新到服务器(slave),完成数据的一致(sql 线程)

主从服务器应用场景:

  1. 更好的支持大规模高并发读写

    1. 主服务器实现读写分离, 从服务器实现负载均衡(lvs)
    2. 数据库读写分离架构
  2. 更有效的保护物理服务器宕机场景下的数据备份
    1. 从服务器 作为 主服务器的实时数据备份

主从同步的原理:

mysql 的主从复制是一个 异步 的复制过程,(虽然一般情况下感觉是实时的), 数据将从一个 mysql 数据库( 我们称为 master) 复制到另一个 mysql数据库( 我们称之为 slave)

在 master 与 slave 之间实现整个主从复制的过程是由3个 线程参与完成的

一个线程在 moster端口 ( I/O 线程), 两个线程在 slave端 (一个 sql 线程, 一个i/o线程)

要实现mysql 的主从复制功能,首先必须打开 master 端的 bin-log 记录功能, 否则无法实现, 因为整个复制过程实际上就是 slave 从 master 端获取 binlog 日志,然后在 slace 上以相同的顺序执行获取 binlog 日志中的所记录的各种sql操作。

1、如何打开 master 的binlog 记录功能

master 服务器的 mysql 配置文件, my.cnf, 添加信息如下

[mysqld]

log-bin = /data/3306/mysql-bin

mysql Replication 主从复制原理箱体过程描述

  1. 在 slave 服务器上 执行 start slave 命令,开启复制开关,开始进行主从复制
  2. 此时, slave 服务器的 I/O 线程会通过 master 上 已经授权的复制用户权限 请求连接 master 服务器, 并请求从指定 binlog 日志文件的指定位置 (日志文件名和位置就是在配置主从复制服务时执行 change master 命令指定的)之后开始发送 binlog 日志内容,
  3. master 服务器接收到来自 slave 服务器的 I/O 线程的请求后, master 上负责复制的 I/O 线程会根据 slave 服务器的 I/O 线程请求的信息分批读取指定 binlog 日志文件指定位置之后的 binlog 日志信息, 然后返回给 slave 端的 I/O 线程。
    1. 返回的信息有

      1. binlog 日志信息
      2. master 服务器记录的新的 binlog 文件名称,以及在新的 binlog 中的下一个指定更新位置
  4. 当 slave 服务器的 i/o 线程 获取到 master 服务器上的 I/0 线程发送的日志内容(日志文件 和 日志位置点)后,
    1. 1. 会将 binlog 日志内容 依次 写到 slave 端 自身的 relay log (中继日志)文件的最末端,格式: mysql-relay-bin.xxxx,
    2. 2.将新的 bin-log 文件名 和文件位置 记录到 master-info 文件中, 以便一下次读取master 端 bin-log 日志时能够告诉 master 服务器 从新 bin-log 日志指定的文件和位置开始请求新的 bin-log 日志内容
  5. slave 服务器的 sql线程 会实时的检测本地的 relay log 中 I/O线程 新增加的日志内容,
    1. 然后及时的把 relay log 文件中的内容解析成 sql 语句,
    2. 并在 relay-log.info 中记录当前应用中继日志的文件名和位置点
  6. 经历了上面的过程, 就可以保证 master 端 和 slave 端执行了相同的 sql 语句,当复制状态正常时, master 和 slave 端的数据是完全一样的

针对mysql 主从复制原理的重点进行小结:

  1. 主从复制是异步的逻辑的 sql语句级别的复制
  2. 复制时,主库有一个 I/O 线程, 从库有2个线程,即 i/o 和 sql 线程
  3. 实现主从复制的必要条件是: 主库开启 binlog 功能
  4. 作为复制的所有 mysql 节点的 server-id 都不能相同
  5. bin-log 只记录对数据可以有更改的 sql 语句(来自数据库内容的变更), 不记录任何查询(select 、show) 语句

    参考: 跟老男孩学linux-web集群-第九章

Msql 主从原理介绍-通俗易懂相关推荐

  1. 赠书:深入理解MySQL主从原理

    根据经验,想要快速学习一门技术有3种方式. 第一种方式是通过代码来理解它的实现,反推它的逻辑. 这种方式的难度很大,而且起点相对高,能够沉浸其中的人非常少,过程相对来说是苦闷的,但如果能够沉下心来看代 ...

  2. MySQL主从原理,基于快速学习一门技术的3种方式!

    根据经验,想要快速学习一门技术有3种方式. 第一种方式是通过代码来理解它的实现,反推它的逻辑. 这种方式的难度很大,而且起点相对高,能够沉浸其中的人非常少,过程相对来说是苦闷的,但如果能够沉下心来看代 ...

  3. heartbeat原理介绍

    heartbeat原理介绍 HeartBeat运行于备用主机上的Heartbeat可以通过以太网连接检测主服务器的运行状态,一旦其无法检测到主服务器的"心跳"则自动接管主服务器的资 ...

  4. kafka集群原理介绍

    kafka集群原理介绍 @(KAFKA)[kafka, 大数据] kafka集群原理介绍 一基础理论 二配置文件 一java调优 二参数说明 三错误处理 四zookeeper中的内容 1brokers ...

  5. LVS原理介绍及安装过程

    一.ARP技术概念介绍 为什么讲ARP技术,因为平常工作中有接触.还有就是LVS的dr模式是用到arp的技术和数据. 1.什么是ARP协议 ARP协议全程地址解析协议(AddressResolutio ...

  6. 学习C++项目——数据库知识学习(主从原理,分离配置,远程工具只是了解,都没有实现)

    学习数据库知识 一.思路和学习方法   本文学习于:B站平台UP主 IT 小当家,学习 MySQL 数据库,如里面加以自己的一些学习复现和理解,如有侵权会进行删除.学习Oracle以后也可以参考之前学 ...

  7. 网络时间同步(卫星时钟同步系统)技术原理介绍

    网络时间同步(卫星时钟同步系统)技术原理介绍 网络时间同步(卫星时钟同步系统)技术原理介绍 1.前言 由计算机网络系统组成的分布式系统,若想协调一致进行:IT行业的"整点开拍".& ...

  8. Matlab 离散小波变换函数 dwt2() 原理介绍与实验

    文章目录 一.小波变换的原理 1.1 小波变换简介 1.2 CWT和DWT的原理 二.傅里叶变换与DWT的比较 三.Matlab实现图像的二维小波变换 3.1 dwt2()函数介绍 3.2 dwt2( ...

  9. HDR sensor 原理介绍

    HDR sensor 原理介绍 一. HDR sensor 原理介绍 什么是sensor的动态范围(dynamic range): sensor的动态范围就是sensor在一幅图像里能够同时体现高光和 ...

  10. java语言的实现机制_JAVA语言之Java NIO的工作机制和实现原理介绍

    本文主要向大家介绍了JAVA语言之Java NIO的工作机制和实现原理介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 前言 本文只简单介绍NIO的原理实现和基本工作流程 I/O和 ...

最新文章

  1. 详解XMind各种上传分享分类
  2. 利用归并排序求逆序对
  3. php mysql 获取错误_php怎样获取mysql错误信息
  4. jpa中::::_项目学生:JPA标准查询
  5. 《C++ Primer 5th》笔记(8 / 19):IO库
  6. WEB运用程序如何实现高效可维护?
  7. as3中splice和slice的用法
  8. run、kill、return、stoprobot、stop
  9. slots游戏html5开发,unity自定义游戏框架Custom Slots fr amework 1.4
  10. android 点击文本框 不调用键盘,Android点击EditText文本框之外任何地方隐藏键盘的解决办法...
  11. android 刷机文件怎么打开,安卓手机怎么刷机
  12. 3dmax塌陷在哪里?怎么用?
  13. 腾讯产品经理培训生笔试攻略,笔试题型详细解析(送历年笔试题库)!
  14. 创新的原则(《创新与企业家精神》彼得·德鲁克)
  15. sdkman 的酷炫 Logo 欢迎界面: 安装 kscript (Kotlin Shell)
  16. 面向对象:余愿,知你冷暖,懂你悲欢,与你共黄昏,也能问你粥可温
  17. 电脑连接蓝牙耳机声音总是断断续续:
  18. 大数据24小时:腾讯杀入无人驾驶市场,百度安全联合成立“OASES智能终端安全生态联盟”
  19. 中国录音制品出版情况分析:2020年中国共出版录音制品5312种,出版数量共计12194.67万盒(张)[图]
  20. 解密国产大数据法律应用服务平台

热门文章

  1. 手把手教你怎样运用手机群控软件赚钱-手游工作室篇
  2. 心电信号越界怎么回事_心电信号的分析
  3. 运动目标检测_帧差法
  4. SIP协议-01 简介与入门
  5. verilog语法记录(一)
  6. 素数筛(埃氏筛、欧拉筛)
  7. matlab 平滑曲线连接_从零开始的matlab学习笔记——(16)函数绘图
  8. JQui---------Button心得
  9. ZipEntry压缩时中文文件名乱码解决办法
  10. #PLC_一次看懂数位低通滤波器设计(含代码实现)