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

Mysql--基础知识点--79.1--双主架构如何避免回环复制

1 避免回环过程

在MySQL双主架构中,GTID(全局事务标识符)通过以下流程避免数据回环:

1 事务提交与GTID生成

  • 在Master1节点,事务提交时生成一个全局唯一的GTID(如3E11FA47-71CA-11E1-9E33-C80AA9429562:23),并记录到binlog中。

2 日志传输到Master2

  • Master1的log dump Thread将包含GTID的binlog日志发送到Master2。

3 Master2记录Relay Log

  • Master2的I/O Thread接收binlog日志,并将其写入本地的Relay Log。

4 Master2重放事务

  • Master2的SQL Thread读取Relay Log中的事务,并尝试重放。

5 Master2检查GTID并忽略

  • 关键步骤:在重放前,Master2检查该事务的GTID是否已存在于其gtid_executed集合(已应用事务的GTID列表)中:
    • 存在:跳过该事务(因为是Master1已提交的事务)。
    • 不存在:执行事务,并将GTID添加到gtid_executed集合。

6 Master2生成新的Binlog

  • 如果事务在Master2上执行,Master2会生成一个新的binlog日志,其中包含相同的GTID。

7 日志传输回Master1

  • Master2的log dump Thread将新的binlog日志(包含GTID)发送回Master1。

8 Master1记录Relay Log

  • Master1的I/O Thread接收binlog日志,并将其写入本地的Relay Log。

9 Master1重放事务

  • Master1的SQL Thread读取Relay Log中的事务,并尝试重放。

10 Master1检查GTID并忽略

  • Master1检查其GTID是否已存在于gtid_executed集合中:
    • 存在:跳过该事务(因为是Master1自己生成的GTID)。
    • 不存在:执行事务(理论上不会发生,因为GTID是全局唯一的)。

补充:v5.6及以后的版本是通过gtid避免回环,v5.6以前的版本是通过server_id[不同的节点有不同的server_id]避免回环

2 总结

2.1 为什么GTID能避免回环?

  • 全局唯一性:每个GTID在集群中唯一,确保事务不会被重复应用。
  • 幂等性检查:通过gtid_executed集合,节点能自动检测并跳过已应用的事务。

相关文章:

  • 设备预测性维护系统部署成本:技术架构与成本优化策略解析
  • JVM虚拟机-类加载器、双亲委派模型、类装载的执行过程
  • 【MySQL高级】锁,日志
  • 子网划分的学习
  • YOLOv8 优化创新:Damo-YOLO 配合 DyHead 检测头的性能突破
  • 【无人机】问题分析。查看电机转速时,四个电机转速不一致,QGC中检测到电机转速不均衡
  • 理解字符设备、设备模型与子系统:以 i.MX8MP 平台为例
  • Redis的数据持久化是怎么做的?
  • 飞算 JavaAI 与 Spring Boot:如何实现微服务开发效率翻倍?
  • dolphinscheduler实现(oracle-hdfs-doris)数据ETL
  • 多态以及多态底层的实现原理
  • 【Dart语言】八、并发
  • 《C++ 模板:泛型编程的核心》
  • 【无人机】使用扩展卡尔曼滤波 (EKF) 算法来处理传感器测量,各传感器的参数设置,高度数据融合、不同传感器融合模式
  • 第十五届蓝桥杯 2024 C/C++组 下一次相遇
  • 逻辑回归:损失和正则化技术的深入研究
  • Git分支管理方案
  • 【Git】Git Revert 命令详解
  • 【springsecurity oauth2授权中心】jwt令牌更换成自省令牌 OpaqueToken P4
  • 前端频繁调用后端接口问题思考
  • 哈工大赵杰:人形机器人要拓展人的能力而非一味复制,未来产业要做成至少10年
  • 凯撒旅业:2024年营业收入约6.53亿元,同比增长12.25%
  • 下周起上海浦东将投放5000万元消费券,预计分五周发放
  • 天问三号开放20千克质量资源,邀国际合作开展火星探测研究
  • “中华优秀科普图书榜”2024年度榜单揭晓
  • 浙江严禁中小学节假日集体补课,省市县教育部门公布举报电话