您好,登錄后才能下訂單哦!
相信作為一名DBA來講MySQL主從一直都是一個繞不開的話題,我們在很多高可用構架中都能看到它的身影。在我們心中一定都或多或少的產生過一些疑問,比如:
這個系列就是想通過描述主從原理,抽絲剝繭解開大家對這些問題的疑惑。我認為如果要深入學習主從原理需要按照一定的順序進行學習,如果不知道GTID、不知道Event、不知道主庫如何生成Event的,那么肯定不能深入理解主從原理 ,因此本系列按照這種順序講解。本系列一共分為5個部分如下:
第一部分 | GTID相關 |
第1節: GTID的基本概念
第2節: mysql.gtid_executed表/gtid_executed變量/gtid_purged變量的更改時機 第3節: GTID模塊初始化簡介和參數binlog_gtid_simple_recovery 第4節: GTID中的運維 |
第二部分 | Event相關 |
第5節: Binary log Event 的總體格式
第6節: 重點Event FORMAT_DESCRIPTION_EVENT/PREVIOUS_GTIDS_LOG_EVENT 第7節: 重點Event GTID_LOG_EVENT 第8節: 重點Event QUERY_EVENT/MAP_EVENT 第9節: 重點Event WRITE_ROWS_EVENT/DELETE_ROWS_EVENT 第10節:重點Event UPDATE_ROWS_EVENT/XID_EVENT 第11節:參數binlog_row_image的影響 第12節:巧用Event發現問題 |
第三部分 | 主庫相關 |
第13節:binlog cache簡介
第14節:事務Event的生成和寫入流程 第15節:MySQL層事務提交流程簡析 第16節:基于WRITESET的并行復制方式 第17節:主庫的DUMP線程 第18節:DUMP線程查找和過濾GTID的基本算法 |
第四部分 | 從庫相關 |
第19節:從庫MTS多線程并行回放(一)
第20節:從庫MTS多線程并行回放(二) 第21節:MTS中GAP測試和參數slave_preserve_commit_order 第22節:從庫的IO線程 第23節:從庫的SQL線程(MTS協調線程)和參數sql_slave_skip_counter 第24節:從庫數據的查找和參數slave_rows_search_algorithms 第25節:從庫的關閉和恢復流程 第26節:合理的從庫設置 第27節:從庫Seconds_Behind_Master的計算方式 第28節:從庫Seconds_Behind_Master延遲總結 |
第五部分 | 其他 |
第29節:線程簡介和MySQL調試環境搭建
第30節:Delete與Insert 死鎖案例分析 第31節:Innodb Buffer Pool的三種Page和鏈表 第32節:利用performance_schema獲取造成死鎖的語句 |
其中:
本系列使用源碼版本為Percona 5.7.22,因此討論的范圍肯定是5.7版本。
本系列雖然包含了主從中的大部分知識點,但是仍然有部分內容沒有覆蓋,如下:
本系列約定如下:
在編寫之初有些朋友建議我不寫源碼而有些朋友建議我多貼些代碼,因此我做了一下綜合,整個系列中我會給出一些源碼接口和必要的源碼證明,但是不會貼很多源碼和棧幀。有些章節會包含一個筆記放到我的簡書,這個筆記就是我學習的時候記錄的源碼調用順序和一些棧幀供自己復習之用也供想了解源碼的朋友查看,但是可讀性不是那么好。如果對源碼不感興趣的朋友可以跳過這些源碼接口和代碼,我認為這并不會影響閱讀的連續性。
從2016年開始八怪(本名高鵬)經常向我請教一些源碼問題,可見八怪是一個對源碼非常執著的人。縱觀整個目錄覆蓋了主從的方方面面,希望他的這個系列能夠讓大家對主從原理有更加深入的理解。
————翟衛祥(網名印風) 阿里云智能數據庫產品事業部高級MySQL內核專家
和八怪(本名叫高鵬)認識,源于他的一位同事參加了知數堂的MySQL課程,學習之余和八怪有些交流互動,對一些觀點有些探討,然后就順理成章的認識了。八怪原本是ORACLE DBA,但他接觸MySQL之后,開始對MySQL各種深入探究,這種學習的態度和方法令我折服,也反過來促進我更深入理解MySQL。
為了更好理解InnoDB引擎,八怪還曾經開發了bctool、bcview和innblock等幾個工具(還有些是我不知道的),其中innblock工具的開發我也作為“產品經理”幫忙提了一些建議,這個工具發布后,也在我的公眾號幫忙隆重的推了一波:innblock | InnoDB page觀察利器。
自從聽聞八怪要寫專欄,我就一直關注著進展,偶爾也會幫忙提些建議。這個專欄主要內容是MySQL主從復制相關的內容,從源碼層面深入解析MySQL主從復制的方方面面,略有遺憾的是本書沒有涉及半同步復制、組復制這兩方面的熱門內容,期待八怪在未來能有精力增加這兩大塊知識點。
————葉金榮 MySQL ACE、知數堂聯合創始人
高鵬是一位做事非常專注而且動手能力超強的人。其中有一件事情我印象特別深刻,在通過和我交流MGR高可用節點選擇后,不到兩周時間,又給我講他實現了一個MGR vip漂移的Python腳本。他先后實現了InnoDB的Page分析,MySQL InnoDB加鎖分析,又開始轉戰努力寫作本系列,通過本系列的目錄可以看到高鵬基本把復制相關原理做了一個徹底的分析,對于想深入理解MySQL復制及Binlog相關內容的朋友來說是一個不可多得的學習資料。
————吳炳錫 知數堂聯合創始人
作為一個曾今混跡于itpub的老人,拜讀過不少高鵬的Oracle方面的文章。偶然之間發現其轉戰MySQL領域,并攥寫了大量原理性剖析的文章,印象較為深刻的是幾篇關于MDL lock的源碼層面的解析,讀完后感覺豁然開朗。開源數據庫目前越來越火,尤其以MySQL表現最為搶眼,如果要深入學習MySQL主從原理,本系列實在是不可多得的資料,強烈推薦之!
————李真旭 Oracle ACE 云和恩墨服務產品群總經理
認識高鵬源于ITPUB blog 專家推薦,初識于Oracle技術,隨后MySQL技術興起,大家轉戰MySQL,高鵬兄側重源碼剖析,對各種疑難雜癥分析入木三分,熱心幫助很多網友解決各種問題。現在他將自己對MySQL 主從復制部分源碼的解讀匯總成系列文章分享給大家。細細品讀,必定受益良多。
————楊奇龍 杭州有贊科技DBA,公眾號yangyidba作者
購買可聯系我 wx:gaopp_22389860
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。