MySQL從庫復制延遲的監測

目錄

      • ?? 一、原生內置方法
      • ?? 二、心跳表工具(如pt-heartbeat)
      • ?? 三、MySQL 8.0+ 增強方案
      • 📊 四、各方案對比總結
      • 💎 五、選擇建議

MySQL從庫復制延遲的監測是保障數據一致性和讀寫分離可靠性的關鍵環節,以下是主流監測方法的詳細對比及優劣勢分析:


?? 一、原生內置方法

  1. Seconds_Behind_Master(SBM)

    • 原理:通過對比從庫當前時間與二進制日志事件時間戳(計算主從時間差偏移量)得出延遲秒數。
    • 優點:無需額外工具,執行SHOW SLAVE STATUS即可獲取。
    • 缺點
      • 主從時間不同步時嚴重失真;
      • 網絡中斷或大事務場景下可能顯示為0(假無延遲);
      • 多線程復制(MTS)中無法反映并行線程的局部延遲。
  2. Binlog 位點對比

    • 原理:比較主庫(SHOW MASTER STATUS)與從庫(SHOW SLAVE STATUS)的binlog位置:
      • Master_Log_File vs Relay_Master_Log_File
      • Read_Master_Log_Pos vs Exec_Master_Log_Pos
    • 優點:直接反映未應用的事務量,避免時間戳誤差。
    • 缺點
      • 無法量化延遲時間(僅顯示事務堆積量);
      • 需手動查詢并計算,不適合自動化監控。

?? 二、心跳表工具(如pt-heartbeat)

  • 原理
    1. 主庫創建心跳表,定期更新時間戳(如每秒);
    2. 從庫計算該表主從時間差:當前時間 - 心跳記錄時間
  • 優點
    • 精準度高:直接測量業務無關的時間差,不受主庫空閑影響;
    • 實時性強:支持秒級甚至亞秒級監控。
  • 缺點
    • 需部署額外進程,占用少量資源;
    • 污染binlog(大量心跳事件);
    • 單點故障風險(心跳進程宕機則監控失效)。

?? 三、MySQL 8.0+ 增強方案

  1. GTID時間戳(original_commit_timestamp

    • 原理
      • 主庫在binlog中記錄事務提交時間(original_commit_timestamp);
      • 從庫通過Performance Schema表(如replication_applier_status_by_worker)計算:
        SELECT LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP - LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP  
        FROM performance_schema.replication_applier_status_by_worker;  
        ```
    • 優點
      • 精準到事務級別:可追蹤單個事務的延遲;
      • 支持復雜拓撲:適用于多級復制(如A→B→C);
      • 無侵入性:無需外部工具。
    • 缺點:僅限MySQL 8.0以上版本,且需啟用GTID。
  2. GTID等待函數(wait_for_executed_gtid_set

    • 原理:在從庫阻塞查詢直到指定GTID事務已應用。
    • 適用場景:確保讀一致性(如寫后讀),但需業務層傳遞GTID。

📊 四、各方案對比總結

監測方法精準度部署復雜度適用場景主要缺陷
Seconds_Behind_Master???快速概覽延遲趨勢易受時間同步/網絡中斷干擾
Binlog位點對比?????判斷事務堆積量無法量化延遲時間
pt-heartbeat???????跨版本通用,需高精度監控需維護心跳進程,污染binlog
MySQL 8.0+ GTID時間戳???????事務級延遲分析,復雜復制拓撲僅限MySQL 8.0+且需GTID
wait_for_executed_gtid_set????????讀寫分離一致性保障需業務改造傳遞GTID

💎 五、選擇建議

  • 通用場景:優先使用pt-heartbeat(精準且兼容舊版本);
  • MySQL 8.0+環境:直接采用GTID時間戳,無需外部依賴;
  • 讀寫分離強一致:結合GTID等待函數確保讀已寫;
  • 快速排查:輔助使用SHOW SLAVE STATUS位點對比驗證事務堆積。

💡 擴展提示:延遲成因多樣(如大事務、無主鍵表、硬件差異),建議結合監控數據針對性優化:

  • 啟用并行復制(MTS);
  • 拆分大事務;
  • 確保表有主鍵(避免ROW格式全表掃描)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83797.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83797.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83797.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

slam--最小二乘問題--凹凸函數

最小二乘問題 最小二乘問題標準公式 殘差函數,線性和非線性最小二乘 最小二乘問題的兩種寫法: 目標 找到 x使得預測值 Ax與觀測值 b 的殘差平方和最小。 范數和范數平方 線性最小二乘 一般形式: 殘差 rAx?b是x 的線性函數。 目標函數是…

crackme008

crackme008 名稱值軟件名稱Andrnalin.1.exe加殼方式無保護方式serial編譯語言Microsoft Visual Basic調試環境win10 64位使用工具x32dbg,PEid破解日期2025-06-10 脫殼 1. 先用PEid查殼 查到無殼 尋找Serial 尋找flag,用x32dbg打開程序,鼠標右鍵->…

【C語言】圖書管理系統(文件存儲版)丨源碼+詳解

一、系統介紹 這是一個基于C語言開發的終端圖書管理系統,采用鏈表數據結構??二進制文件存儲技術實現。系統具有以下特點: ?雙角色系統?:管理員(管理圖書)和讀者(借閱/歸還)?完整功能?&a…

Java求職者面試題解析:Spring、Spring Boot、MyBatis框架與源碼原理

Java求職者面試題解析:Spring、Spring Boot、MyBatis框架與源碼原理 第一輪:基礎概念問題 1. 請解釋什么是Spring框架?它的核心特性有哪些? Spring是一個開源的Java/Java EE應用程序框架,用于簡化企業級應用開發。其…

【Chipyard】修改Gemmini 中PE的數量

實戰目標 PE數量擴大到原來4倍 原來配置 tileRows: Int 1,tileColumns: Int 1,meshRows: Int 16,meshColumns: Int 16, 改后配置 tileRows: Int 1,tileColumns: Int 1,meshRows: Int 32,meshColumns: Int 32, 修改配置 1. 修改gemmini的scala配置文件,用…

TCP客戶端進程分割輸入輸出

創建TCP客戶端&#xff0c;創建子進程分割TCP客戶端的read功能和write功能&#xff0c;實現分割I/O的目的。加快客戶端速率。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <signal.h> #include …

Wi-Fi 6 在 2.4GHz 頻段的速率與優化分析

Wi-Fi 6&#xff08;802.11ax&#xff09;在 2.4GHz 和 5GHz 頻段均可工作&#xff0c;理論最高速率可達 1200 Mbps&#xff08;5GHz&#xff0c;80MHz&#xff0c;22 MIMO&#xff09;。但在 2.4GHz 頻段&#xff0c;速率受 信道寬度、MIMO、調制方式、干擾、協議開銷 影響&am…

WPF--Application.Current.Dispatcher.BeginInvoke

1.代碼示例 private void LogInfoList_CollectionChanged(object? sender, NotifyCollectionChangedEventArgs e) {// 直接在這里修改集合會引發遞歸if (e.Action NotifyCollectionChangedAction.Add){if (logInfoList.Count > 200){logInfoList.RemoveAt(0); // 這里會…

ZooKeeper詳解以及應用部署(AI)

ZooKeeper 是一個開源的分布式協調服務框架&#xff0c;旨在為分布式應用提供一致性保障和關鍵協調功能。其核心設計理念是將復雜的分布式一致性邏輯封裝為簡單可靠的接口&#xff0c;讓開發者專注于業務邏輯而非底層協調難題。以下是其核心要點&#xff1a; &#x1f9e0; 一、…

將MySQL數據庫中所有表和字段編碼統一改為utf8mb4_unicode_ci

完整操作步驟 1. 首先修改數據庫默認字符集 sql ALTER DATABASE 你的數據庫名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 2. 生成批量修改所有表的SQL語句 sql SELECT CONCAT(ALTER TABLE , table_schema, ., table_name, CONVERT TO CHARACTER SET utf8mb4 C…

jupyterhub的淺淺使用-重點在解決無法登錄

jupyterhub的淺淺使用-重點在解決無法登錄 jupyterhub的淺淺使用-重點在解決無法登錄1、jupyterhub是什么2、創建Dockerfile3、啟動容器3.1、生成配置文件jupyterhub --generate-config3.2、運行容器3.3、進入容器配置用戶密碼3.4、訪問127.0.0.1:8000并登錄 4、后臺創建的用戶…

【Bitcoin基礎】比特幣的地址格式有哪些?如何應用?

比特幣地址格式的分類及應用場景 比特幣地址是用于接收和發送比特幣的標識符&#xff0c;主要有以下幾種格式&#xff0c;每中類型都有其特定的用途和特點: 比特幣地址格式 P2PKH 1xxxx leagcy地址 P2SH 3xxxx 允許更復雜的交易多重簽名 bech32 bc1xxxx bech32mP2TR…

3.1.2_棧的順序存儲實現

知識總覽&#xff1a; 順序棧的定義&#xff1a; 順序棧是用順序存儲實現的 &#xff0c;代碼定義方式和順序表類似(啥是順序表來著&#xff1f;&#xff1f;&#xff1f;) 定義一個順序棧struct結構體SqStack&#xff0c;結構體中有靜態數組data來存放棧里邊的元素1個int型的…

JavaEE初階第一期:計算機是如何 “思考” 的(上)

專欄&#xff1a;JavaEE初階起飛計劃 個人主頁&#xff1a;手握風云 一、馮諾依曼體系結構 1.1. 概念 馮諾依曼體系結構&#xff08;Von Neumann Architecture&#xff09;&#xff0c;是現代計算機的基礎設計概念&#xff0c;核心思想是“存儲程序控制”。具體來說&#xff0c…

SQL Server全局搜索:在整個數據庫中查找特定值的高效方法

SQL Server全局搜索&#xff1a;在整個數據庫中查找特定值的高效方法 一、需求背景&#xff1a;為什么需要數據庫全局搜索&#xff1f; 在數據庫管理和開發過程中&#xff0c;我們經常會遇到這樣的場景&#xff1a; 只記得某個數據值&#xff0c;但忘記了它所在的表或列需要…

萬物皆數:構建數字信號處理的數學基石

萬物皆數&#xff1a;構建數字信號處理的數學基石 歡迎來到數字信號處理&#xff08;DSP&#xff09;的世界。在這里&#xff0c;聲音、圖像、通信信號、醫療數據……一切信息都被轉化為一串串冰冷的數字。然而&#xff0c;正是通過對這些數字的精妙運算&#xff0c;我們得以實…

到院率最高提升40%,消費醫療用AI營銷機器人跑贏增長焦慮

當前&#xff0c;消費醫療機構普遍依賴人工咨詢師進行客戶接待和營銷咨詢。然而&#xff0c;專業咨詢師缺口高達20萬人&#xff0c;大量“護士轉咨詢”“銷售轉咨詢”現象導致方案設計專業性不足&#xff0c;客戶投訴率提升40%。人工客服不僅醫學知識薄弱&#xff0c;學習能力有…

【推薦算法】注意力機制與興趣演化:推薦系統如何抓住用戶的心?

注意力機制與興趣演化&#xff1a;推薦系統如何抓住用戶的心&#xff1f; 一、算法背景知識&#xff1a;從靜態推薦到動態感知1.1 傳統推薦系統的局限性1.2 人類注意力機制的啟示 二、算法理論/結構&#xff1a;動態興趣建模革命2.1 DIN&#xff08;深度興趣網絡&#xff09;&a…

快速入門:創建 Azure 數據資源管理器群集和數據庫

前言 Azure 數據資源管理器是 Microsoft 提供的一項快速、完全托管的數據分析服務。 它允許用戶分析來自應用程序、網站、物聯網設備等的海量數據流,從而簡化復雜的數據探索。 它能夠處理數 PB 的數據,并支持快速檢索數據以進行分析。 主要特點 高性能:ADX 針對快速數據提…

Redis集群模式之Redis Cluster(2)

上篇文章我們講解了Redis Cluster中的主要模塊和兩種重定向方式&#xff0c;這篇文章我們來講解一下Redis Cluster的狀態監測和維護。 Redis Cluster狀態監測及維護 要講解Redis Cluster中節點的狀態如何維護&#xff0c;我們要先知道Redis Cluster中的節點有哪些狀態&#xf…