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集合,节点能自动检测并跳过已应用的事务。

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

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

相关文章

安宝特科技 | AR眼镜在安保与安防领域的创新应用及前景

随着科技的不断进步,增强现实(AR)技术逐渐在多个领域展现出其独特的优势,尤其是在安保和安防方面。AR眼镜凭借其先进的功能,在机场、车站、海关、港口、工厂、园区、消防局和警察局等行业中为安保人员提供了更为高效、…

Linux第十讲:进程间通信IPC

Linux第十讲:进程间通信IPC 1.进程间通信介绍1.1什么是进程间通信1.2为什么要进程间通信1.3怎么进行进程间通信 2.管道2.1理解管道2.2匿名管道的实现代码2.3管道的五种特性2.3.1匿名管道,只能用来进行具有血缘关系的进程进行通信(通常是父子)2.3.2管道文…

微信小程序通过mqtt控制esp32

目录 1.注册巴法云 2.设备连接mqtt 3.微信小程序 备注 本文esp32用的是MicroPython固件,MQTT服务用的是巴法云。 本文参考巴法云官方教程:https://bemfa.blog.csdn.net/article/details/115282152 1.注册巴法云 注册登陆并新建一个topic&#xff…

SQLMesh隔离系统深度实践指南:动态模式映射与跨环境计算复用

在数据安全与开发效率的双重压力下,SQLMesh通过动态模式映射、跨环境计算复用和元数据隔离机制三大核心技术,完美解决了生产与非生产环境的数据壁垒问题。本文提供从环境配置到生产部署的完整实施框架,助您构建安全、高效、可扩展的数据工程体…

Spring Data详解:简化数据访问层的开发实践

1. 什么是Spring Data? Spring Data 是Spring生态中用于简化数据访问层(DAO)开发的核心模块,其目标是提供统一的编程模型,支持关系型数据库(如MySQL)、NoSQL(如MongoDB)…

15 nginx 中默认的 proxy_buffering 导致基于 http 的流式响应存在 buffer, 以 4kb 一批次返回

前言 这也是最近碰到的一个问题 直连 流式 http 服务, 发现 流式响应正常, 0.1 秒接收到一个响应 但是 经过 nginx 代理一层之后, 就发现了 类似于缓冲的效果, 1秒接收到 10个响应 最终 调试 发现是 nginx 的 proxy_buffering 配置引起的 然后 更新 proxy_buffering 为…

源超长视频生成模型:FramePack

FramePack 是一种下一帧(下一帧部分)预测神经网络结构,可以逐步生成视频。 FramePack 将输入上下文压缩为固定长度,使得生成工作量与视频长度无关。即使在笔记本电脑的 GPU 上,FramePack 也能处理大量帧,甚…

第6次课 贪心算法 A

向日葵朝着太阳转动,时刻追求自身成长的最大可能。 贪心策略在一轮轮的简单选择中,逐步导向最佳答案。 课堂学习 引入 贪心算法(英语:greedy algorithm),是用计算机来模拟一个「贪心」的人做出决策的过程…

Windows使用SonarQube时启动脚本自动关闭

一、解决的问题 Windows使用SonarQube时启动脚本自动关闭,并发生报错: ERROR: Elasticsearch did not exit normally - check the logs at E:\Inori_Code\Year3\SE\sonarqube-25.2.0.102705\sonarqube-25.2.0.102705\logs\sonarqube.log ERROR: Elastic…

人机共跑,马拉松人型机器人同跑

马拉松比赛对人形机器人来说,是一场对硬件极限的测试,涉及机械、传感器、能源管理等多个方面。用户问的是硬件方面的考察和改进,这意味着我的回答需要聚焦于硬件性能,而不是算法或软件的优化。 对人形机器人硬件的考研 机械结构与…

Ubuntu Linux 中文输入法默认使用英文标点

先ubuntu从wayland切换到x11, sudo nano /etc/gdm3/custom.conf WaylandEnablefalse #取消注释 sudo systemctl restart gdm3 #使设置生效然后安装fcitx(是fcitx4版本)和 fcitx-googlepinyin, sudo apt install fcitx fcitx-googlepinyin 再sudo dpkg -i 安装百度输入法deb…

[论文阅读]ConfusedPilot: Confused Deputy Risks in RAG-based LLMs

ConfusedPilot: Confused Deputy Risks in RAG-based LLMs [2408.04870] ConfusedPilot: Confused Deputy Risks in RAG-based LLMs DEFCON AI Village 2024 文章是针对Copilot这样一个RAG服务提供平台的攻击 在企业环境中整合人工智能工具(如 RAG)会…

前端做模糊查询(含AI版)

文章目录 前言代码实现AI个人 总结 前言 因为table需要编辑,所以如果从后端拿数据,编辑后筛选数据就会丢失。这时候就需要前端一次性拿到所有数据进行过滤,数据进行浅拷贝,以便过滤后的数据修改之后,同步修改总数居&a…

Mujoco xml < sensor>

< sensor> jointposjointveljointactuatorfrcframequatgyroaccelerometerframeposframelinveltouchobjtype"site" objname"imu" 和site"imu"的区别python中与sensor有关的写法传感器名字索引第几个idid索引传感器名字传感器数量sensor中的…

Python爬虫从入门到实战详细版教程

Python爬虫从入门到实战详细版教程 文章目录 Python爬虫从入门到实战详细版教程书籍大纲与内容概览第一部分:爬虫基础与核心技术1. 第1章:[爬虫概述](https://blog.csdn.net/qq_37360300/article/details/147431708?spm=1001.2014.3001.5501)2. 第2章:HTTP协议与Requests库…

ubuntu--汉字、中文输入

两种输入框架的安装 ibus 链接 (这种方式安装的中文输入法不是很智能&#xff0c;不好用)。 Fcitx 链接这种输入法要好用些。 简体中文检查 fcitx下载和配置 注意&#xff1a;第一次打开fcitx-config-qt或者fcitx configuration可能没有“简体中文”&#xff0c;需要把勾…

Java 数据库性能优化:SQL 查询的 10 个关键点

Java 数据库性能优化&#xff1a;SQL 查询的 10 个关键点 在 Java 开发中&#xff0c;数据库操作是必不可少的一环。然而&#xff0c;随着数据量的增加&#xff0c;数据库性能问题往往会成为系统性能的瓶颈。而 SQL 查询的优化&#xff0c;是提高数据库性能的重要手段。本文将…

Containerd与Docker的相爱相杀:容器运行时选型指南

容器运行时&#xff08;Container Runtime&#xff09;作为云原生基础设施的底层引擎&#xff0c;正从Docker一家独大走向多元化竞争。本文将深入剖析Containerd与Docker的技术血缘、性能差异及选型策略&#xff0c;揭示如何根据场景需求选择最优解。 一、技术血缘&#xff1a;…

计算机组成与体系结构:缓存(Cache)

目录 为什么需要 Cache&#xff1f; &#x1f9f1; Cache 的分层设计 &#x1f539; Level 1 Cache&#xff08;L1 Cache&#xff09;一级缓存 &#x1f539; Level 2 Cache&#xff08;L2 Cache&#xff09;二级缓存 &#x1f539; Level 3 Cache&#xff08;L3 Cache&am…

HTTP测试智能化升级:动态变量管理实战与效能跃迁

在Web应用、API接口测试等领域&#xff0c;测试场景的动态性和复杂性对测试数据的灵活管理提出了极高要求。传统的静态测试数据难以满足多用户并发、参数化请求及响应内容验证等需求。例如&#xff0c;在电商系统性能测试中&#xff0c;若无法动态生成用户ID、订单号或实时提取…