最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL 機器重啟后gtid_executed初始化流程解析

 更新時間:2025年12月11日 11:27:50   作者:翔云123456  
文章介紹了MySQL中g(shù)tid_executed和gtid_purged的初始化過程,包括從mysql.gtid_executed表加載、掃描binlog文件以驗證和補充、最終計算并合并這兩個集合,以及gtid_purged的計算方法,感興趣的朋友跟隨小編一起看看吧

gtid_executed 的初始化

  1. 從 mysql.gtid_executed 表加載(主要來源)
  • 持久化存儲:在實例正常運行期間,MySQL 會定期(例如在 binlog 文件輪換時或服務(wù)器關(guān)閉時)將內(nèi)存中的 gtid_executed 集合進行“壓縮”并持久化到 mysql.gtid_executed 系統(tǒng)表中。
  • 初始化基礎(chǔ)值:實例啟動時,首先會從 mysql.gtid_executed 表中讀取所有記錄,將這些記錄的 GTID 集合合并,作為初始化 @@GLOBAL.gtid_executed 系統(tǒng)變量的基礎(chǔ)值。這是最快、最主要的數(shù)據(jù)來源。
  1. 掃描 Binlog 文件以進行驗證和補充
  • 掃描現(xiàn)存文件:繼上一步之后,服務(wù)器會掃描磁盤上所有現(xiàn)存的(未被 PURGE 的)binlog 文件。
  • 重建 Binlog 中的 GTID 集合:對于每個 binlog 文件,服務(wù)器通過解析其頭部的 Previous_gtids_log_event 和文件體內(nèi)的 Gtid_log_event,計算出該文件所包含的完整 GTID 區(qū)間。
  • 計算并合并:服務(wù)器將所有現(xiàn)存 binlog 文件中的 GTID 集合合并,得到一個代表“磁盤上記錄的已執(zhí)行事務(wù)”的 GTID 集合,我們稱之為 binlog_gtid_set。

補充說明:如果版本只涉及 5.7.8 及以后版本,binlog_gtid_set 計算時只使用最新binlog文件即可。

  1. 計算最終的 gtid_executed
    最終的
    @@GLOBAL.gtid_executed 值是以下兩個集合的并集(UNION): gtid_executed = 從mysql.gtid_executed表加載的集合 ∪ binlog_gtid_set

這樣設(shè)計的目的:

  • 效率:從表加載速度遠快于解析所有 binlog 文件。
  • 安全性/正確性:mysql.gtid_executed 表可能由于某些原因(如未及時刷新)未能包含最新提交的事務(wù)。掃描 binlog 確保了任何已經(jīng)記錄到二進制日志中的事務(wù)都不會被遺漏,從而保證了 gtid_executed 集合的絕對正確性。

gtid_purged 初始化

在 gtid_executed 確定之后,再看下gtid_purged 的計算。
實際上,簡單說,

gtid_executed = gtid purged + gtid not purged

gtid_purged代表的是已經(jīng)從磁盤上被清除的 binlog 文件中所記錄的那些事務(wù)。

步驟一:計算 gtids_in_binlog(所有曾被記錄在日志中的 GTID)
計算方法:最新的二進制日志文件中的 Previous_gtids_log_event(上一個日志的 GTID 集合)加上該最新日志文件自身的 GTID 事務(wù)。
步驟二:計算 gtids_in_binlog_not_purged(未被清理的 GTID)
計算方法: 用 gtids_in_binlog(步驟一的結(jié)果)減去最老的二進制日志文件中的 Previous_gtids_log_event 集合。
步驟三:計算 gtid_purged(已清理的 GTID)
計算方法: 用 gtid_executed(所有執(zhí)行過的 GTID)減去 gtids_in_binlog_not_purged(步驟二的結(jié)果)。

補充說明:可能有同學(xué)會有疑問,為什么不直接使用 最舊binlog文件 中的 Previous_gtids_log_event 作為 gtid_purged?實際上,這里要考慮沒有記錄binlog的情況,如果沒有打開binlog 或者某個事務(wù)沒有記錄binlog,直接使用最舊binlog文件 中的 Previous_gtids_log_event,是有問題的。

上面過程的流程如下圖:

到此這篇關(guān)于MySQL 機器重啟后gtid_executed初始化流程解析的文章就介紹到這了,更多相關(guān)mysql gtid_executed初始化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入理解MySQL和Redis的二級緩存

    深入理解MySQL和Redis的二級緩存

    在數(shù)據(jù)庫系統(tǒng)中,二級緩存是一種用于緩存頻繁訪問的數(shù)據(jù)的機制,本文就來介紹一下MySQL和Redis二級緩存的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2025-08-08
  • Mysql服務(wù)器的安裝配置與啟動關(guān)閉方法詳解

    Mysql服務(wù)器的安裝配置與啟動關(guān)閉方法詳解

    MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一
    2021-10-10
  • MySQL中FIND_IN_SET()函數(shù)與in的區(qū)別及說明

    MySQL中FIND_IN_SET()函數(shù)與in的區(qū)別及說明

    文章介紹了SQL中FIND_IN_SET函數(shù)和IN關(guān)鍵字的區(qū)別及使用,FIND_IN_SET允許字段或常量作為參數(shù)并進行精確匹配,而IN只允許常量且進行完全匹配,文章指出使用FIND_IN_SET可能導(dǎo)致索引失效,從而增加查詢時間
    2025-10-10
  • SQL LIKE運算符用法示例及通配符解釋

    SQL LIKE運算符用法示例及通配符解釋

    這篇文章主要為大家介紹了SQL LIKE運算符用法示例及通配符解釋,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • mysql如何按字段查詢重復(fù)的數(shù)據(jù)

    mysql如何按字段查詢重復(fù)的數(shù)據(jù)

    這篇文章主要介紹了mysql如何按字段查詢重復(fù)的數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • PHP訪問MySQL查詢超時處理的方法

    PHP訪問MySQL查詢超時處理的方法

    PHP連接MySQL主要是使用Mysql提供的 libmysqlclient 的客戶端庫,同時也延伸出來 mysql 和 mysqli 兩套PHP的擴展,相對來說 mysqli 比 mysql 更好,更穩(wěn)定。
    2011-05-05
  • InnoDB中不同SQL語句設(shè)置鎖的情況詳解

    InnoDB中不同SQL語句設(shè)置鎖的情況詳解

    這篇文章主要介紹了InnoDB中不同SQL語句設(shè)置鎖的情況詳解,在Mysql中,鎖定讀、更新、刪除操作通常會對SQL語句處理過程中掃描到的每條索引記錄設(shè)置記錄鎖,需要的朋友可以參考下
    2024-01-01
  • 一文帶你了解MySQL之InnoDB統(tǒng)計數(shù)據(jù)是如何收集的

    一文帶你了解MySQL之InnoDB統(tǒng)計數(shù)據(jù)是如何收集的

    通過show index可以看到關(guān)于索引的統(tǒng)計數(shù)據(jù),那么這些統(tǒng)計數(shù)據(jù)是怎么來的呢,它們是以什么方式收集的呢,本章將聚焦于InnoDB存儲引擎的統(tǒng)計數(shù)據(jù)收集策略,需要的朋友可以參考下
    2023-05-05
  • Mysql數(shù)據(jù)庫設(shè)計三范式實例解析

    Mysql數(shù)據(jù)庫設(shè)計三范式實例解析

    這篇文章主要介紹了Mysql數(shù)據(jù)庫設(shè)計三范式實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • MySQL自增ID用完了的四種解決方式

    MySQL自增ID用完了的四種解決方式

    這篇文章主要介紹了MySQL自增ID用完了的四種解決方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06

最新評論

永德县| 巢湖市| 中西区| 石门县| 马龙县| 收藏| 伊吾县| 伊吾县| 石阡县| 横峰县| 龙井市| 台安县| 措美县| 宁都县| 同德县| 繁峙县| 巴东县| 西贡区| 黔东| 水富县| 应用必备| 措勤县| 赤壁市| 毕节市| 肃北| 介休市| 永年县| 通海县| 平度市| 临海市| 富锦市| 台南市| 渭源县| 那曲县| 泰安市| 南城县| 隆尧县| 囊谦县| 宁津县| 新竹县| 东乡县|