Mysql 5.7 Gtid內部學習(一) 導讀

gaopengtttt發表於2017-12-18
Mysql 5.7 Gtid內部學習(一) 導讀 
簡書地址:


Mysql Gtid特性是5.6加入的一個強大的特性,它的目的在於使用Gtid的Mysql能夠在整個複製環境中能夠自動的切換,而不像以前需要指定檔案和位置,這也一定是未來發展的方向,我們熟知的MGR也是基於Gtid的,所以瞭解Gtid的原理也是必要的。
Gtid的維護是完全自動的,但是實際使用上確實有較多的坑,也導致很多朋友對Gtid還是覺得畏懼,本系列文章將從Gtid模組的原始碼出發分析,並且給出總結,然後結合運維和案例進行綜合的解析,我希望拋磚引玉讓希望瞭解原始碼的朋友也有所收穫,但是能力有限特別是原始碼部分如果有錯誤請指出,並且能夠一起交流,如果有朋友有更好的案例也歡迎一起探討。
當然留下這麼一個系列也有自己的原因,好記性不如爛筆頭嘛,因此也當自己的一個筆記了。

本系列文章使用原始碼版本為percona 5.7.14,也比較過5.7.17,5.6.25的原始碼版本。佔時沒有能力比較全部的Mysql原始碼版本,有誤導還請見諒。

一、Gtid事物的生命週期

Gtid的全稱為global transaction identifier,他在整個複製生態中完全唯一的,下面我們透過一個圖來解釋它的整個生命週期,假設我們這裡有一個master->slave->slave的複製環境,生成了一個Gtid為89dfa8a4-cb13-11e6-b504-000c29a879a3:1的Gtid 事物,因為名字太長我簡化為879a3:1如圖:

未命名檔案.png
未命名檔案.png

我們可以看到在整個生命週期中整個事物的Gtid號是沒有改變的,不管在主庫還是從庫它都是89dfa8a4-cb13-11e6-b504-000c29a879a3:1,這也是為什麼叫做全域性的原因。

二、本系列文章包含了哪些內容

本系列文章一共分為十節:

  • Mysql 5.7 Gtid內部學習(一) 導讀
  • Mysql 5.7 Gtid內部學習(二) Gtid相關內部資料結構
  • Mysql 5.7 Gtid內部學習(三) Gtid和Last_commt/sequnce_number的生成時機
  • Mysql 5.7 Gtid內部學習(四) mysql.gtid_executed表的作用和Previous gtid Event的改變
  • Mysql 5.7 Gtid內部學習(五) mysql.gtid_executed表/gtid_executed變數/gtid_purged變數的更改時機
  • Mysql 5.7 Gtid內部學習(六) Mysql啟動初始化Gtid模組
  • Mysql 5.7 Gtid內部學習(七) 總結binlog_gtid_simple_recovery引數帶來的影響
  • Mysql 5.7 Gtid內部學習(八) Gtid帶來的運維改變
  • Mysql 5.7 Gtid內部學習(九) 實際案例(一)
  • Mysql 5.7 Gtid內部學習(十) 實際案例(二)

每一節都包含了總結和大量的文字描述,希望對普通的運維DBA也有所幫助,同時也希望對想了解原始碼的DBA也有所引導。

三、總結

本節只是一個導讀,希望能夠讓大家對Gtid有一個基本瞭解,如果需要繼續瞭解可以看看官方文件。

  • 18.1.3 Replication with Global Transaction Identifiers

作者微信:


微信.jpg

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2148834/,如需轉載,請註明出處,否則將追究法律責任。

相關文章