当前位置: 首页 > news >正文

24 | MySQL是怎么保证主备一致的?

MySQL 主备的基本原理

在这里插入图片描述
内部流程
在这里插入图片描述
备库 B 跟主库 A 之间维持了一个长连接。主库 A 内部有一个线程,专门用于服务备库 B 的这个长连接。一个事务日志同步的完整过程是这样的:

  1. 在备库 B 上通过 change master 命令,设置主库 A 的 IP、端口、用户名、密码,以及要从哪个位置开始请求binlog,这个位置包含文件名和日志偏移量。
  2. 在备库 B 上执行 start slave 命令,这时候备库会启动两个线程,就是图中的 io_thread 和
    sql_thread。其中 io_thread 负责与主库建立连接。
  3. 主库 A 校验完用户名、密码后,开始按照备库 B 传过来的位置,从本地读取 binlog,发给 B。
  4. 备库 B 拿到 binlog 后,写到本地文件,称为中转日志(relay log)。
  5. sql_thread 读取中转日志,解析出日志里的命令,并执行。

binlog 的三种格式对比

binlog 有两种格式,一种是 statement,一种是 row。可能你在其他资料上还会看到有第三种格式,叫作 mixed,其实它就是前两种格式的混合。</

http://www.lryc.cn/news/347984.html

相关文章:

  • 2.数据类型与变量(java篇)
  • QT设计模式:桥接模式
  • 简单粗暴的翻译英文pdf
  • UDP和TCP协议比较,TOE技术
  • 第十三节 huggingface的trainner解读与Demo
  • GO: json 处理
  • HarmonyOS开发案例:【生活健康app之实现打卡功能】(2)
  • Mockito框架,帮助创建模拟对象进行测试的利器
  • Spring Boot的工作原理
  • 单点登录和统一身份认证的区别
  • 革新机器人任务规划:TREE-PLANNER引领高效、准确的机器人动作生成新趋势
  • 【数据分析面试】42.用户流失预测模型搭建(资料数据分享)
  • 5.13号模拟前端面试10问
  • 学习使用jQuery将光标移动到textarea的末尾
  • 【送书福利第七期】你好!Java(文末送书)
  • 申贷时,银行级大数据自己能查到吗?
  • 【SVN-TortoiseSVN】SVN 的简介与TortoiseSVN 安装使用教程
  • 5.13学习日志
  • 8种常见的CMD命令
  • 版本控制工具之Git的基础使用教程
  • 五子棋对战(网页版)
  • 在 Ubuntu系统中,可以使用以下几种方法查看网络速率
  • 这是摆脱困境的最好方法
  • OceanBase 中的ROWID与Oracle的差异与如何迁移
  • 秋招后端开发面试题 - JVM运行时数据区
  • 【YOLOv8改进[Backbone]】使用SCINet改进YOLOv8在黑暗环境的目标检测效果
  • ASE docker related research
  • maven .lastUpdated文件作用
  • gtest的编译与使用
  • 【 npm详解:从入门到精通】