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.pswp.cn/news/902529.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902529.shtml
英文地址,請注明出處:http://en.pswp.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、訂單號或實時提取…