-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
1/26 新書到! 1/19 新書到! 1/12 新書到! 1/5 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

數據生態:MySQL復制技術與生產實踐

( 簡體 字)
作者:羅小波,沈剛類別:1. -> 資料庫 -> MySQL
譯者:
出版社:電子工業出版社數據生態:MySQL復制技術與生產實踐 3dWoo書號: 53633
詢問書籍請說出此書號!

有庫存
NT售價: 595

出版日:10/1/2020
頁數:456
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121397141
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
作者序:

譯者序:

前言:

推薦序一



MySQL在其3.23版本時就頗具前瞻性地推出主從復制(replication)特性,距今約有20年了。正是這一舉措,使得MySQL趕上了互聯網1.0時代的發展大勢。利用復制特性可以很方便地實現數據庫架構的擴展及讀寫分離功能,以提升架構承載的容量。
我想,從這個角度來說,復制是MySQL最主要的特性一點都不為過。
本書專注于MySQL復制特性,從基本概念和原理著手,再到實踐操作、復制架構的方案、常見故障案例等方面,也涵蓋了傳統復制架構下最新的半同步復制、多源復制、多線程復制等內容,可謂MySQL復制特性的全面指南。
相信我,本書對MySQL復制特性的闡述既有廣度也不失深度,無論是對于在校生還是技術專家,本書都值得細讀。

葉金榮
Oracle ACE Director(MySQL)
推薦序二



在開源國產數據庫崛起的今天,羅小波和沈剛所著的這本佳作《數據生態:MySQL復制技術與生產實踐》,無疑將為MySQL在各行業的推廣和使用做出貢獻,這也是像我這樣的從商業數據庫轉到開源數據庫的從業者的福音。
MySQL能夠成為“最流行的開源數據庫”,其復制技術起了巨大的作用。Sharing Nothing架構、橫向擴展、高可用、容災、數據集成與聚合,這一系列名詞所代表的架構和應用場景都與復制技術有關。多應用場景意味著與復制相關的技術靈活而復雜:異步復制、增強半同步復制、語句級復制、行級復制、按位點復制、GTID復制、多源復制、級聯復制、多線程復制、雙主架構、一主多從架構、延遲復制、讀寫分離等。不同的業務場景,使用不同的復制架構,該如何正確地構建MySQL復制拓撲、如何有效地監控和正確地維護,這些都是架構師和DBA要解決的問題。
小波他們這本書系統講解了MySQL復制技術的知識點,涵蓋上面所提到的各種場景和架構相關的問題。我特別佩服小波,佩服他在技術研究和寫作上的系統性,在書中對高層架構和實踐細節的知識講述得細致而全面。毫無疑問,這些知識將有助于DBA構建企業級MySQL運行環境,在數據庫可擴展性和高可用性等方面,做到正確地實施和監控,以及管理和維護。
本書以專題的形式切入,力求將MySQL主從復制的原理和實踐講透。掌握MySQL復制技術后,再了解和掌握生態圈中的第三方產品,包括MHA、Orchestrator、Replication Manager、Otter、Canal、ProxySQL等,來補充MySQL架構,就不再是難事。
由于篇幅原因,這本書沒有涉及MySQL Group Replication(簡稱MGR,即組復制),所以很期待小波的下一本書能夠對MySQL復制技術的另一個分支“組復制”進行全面、細致、深入的講解。
再次感謝小波給社區和行業帶來的佳作。

熊軍
云和恩墨產品研發副總裁
推薦序三



很高興能夠為大家推薦羅小波老師與他同事沈剛的新作《數據生態:MySQL復制技術與生產實踐》。這本書匯集了羅老師他們近年來的學習成果和工作經驗,是關于MySQL生態的又一力作。
與概要性地介紹MySQL的圖書不同,這本書詳細介紹了MySQL復制技術及其在生產實踐中的具體應用和操作,是一本專題類的圖書。
熟悉MySQL的人都知道,MySQL的復制技術是其核心技術之一,是靈活運用MySQL的基礎。從3.23版本開始,MySQL推出了異步復制功能,之后不斷進化,推出半同步復制、無損半同步復制,以及目前最新的組復制功能。其基本原理幾乎是一致的——利用二進制日志文件在數據庫服務器之間的傳播和數據回放,實現多臺數據庫服務器之間的數據同步。一個合格的MySQL從業人員,必須掌握復制技術的基礎知識,熟悉復制技術的各種解決方案,并靈活利用它們去滿足生產系統中的各種需求。
這本書的“基礎篇”介紹了復制技術的原理,對相關概念進行了詳盡的解讀;“方案篇”則介紹了不同方案的應用與實際操作;最后的“參考篇”對二進制日志等內容進行了詳細的說明。這本書詳盡闡述了MySQL復制技術。
隨著國家加強對數據庫技術安全可控的要求,使用開源的MySQL數據庫已經成為一種趨勢,開源代表著代碼安全、數據庫可控。各行各業不斷地推進MySQL的部署,MySQL從業人員也由互聯網行業擴散到傳統行業。利用復制技術可以實現MySQL的高可用性及高擴展性,是保障MySQL數據安全和進行數據庫擴展的必要技術。安全可控對于傳統行業至關重要,因此極力推薦MySQL從業者,特別是傳統行業的DBA閱讀此書。

徐軼韜
Oracle公司MySQL全球事業部亞太區解決方案高級工程師
微信公眾號“MySQL解決方案工程師”運營者和內容作者
前 言



寫書的出發點
2019年11月,我們撰寫了《千金良方:MySQL性能優化金字塔法則》一書。從那以后,身邊不斷有人問我一個問題:“寫技術類的書不怎么賺錢,為什么還要寫?”剛開始,我還認真回答,但提問者聽到回答之后大多仍然表示不解,后來問的人多了,我索性回答:“為了賺名氣!”這個答案簡單、粗暴、有效!的確,通過《千金良方:MySQL性能優化金字塔法則》一書,我們小“賺”了些名氣,不過對于為什么寫書這個問題,這不是我的全部答案。現在,借本書的前言,我將自己全部的想法寫出來,希望能完整、全面地回答這個問題。
? 督促自己有計劃地學習
2018年12月,我們有幸參加了電子工業出版社在北京舉辦的作譯者聚會。聚會上有兩位嘉賓的話令我印象深刻。一位來自阿里巴巴的安全專家說他已經撰寫十余本書了,另一位來自美團的某團隊負責人說他規劃要寫十余本書。“聽君一席話,勝讀十年書”,他們完全顛覆了我之前對于寫書這件事的看法。在此之前,我一直以為,技術圖書是寫作者不斷沉淀工作中所學的知識,由量變到質變的產物。能寫一本書,說明某個方面知識的積累已經達到一定厚度,非常不易。在那一刻,我才知道,原來寫書這件事,還可以刻意規劃,也難怪大拿們能夠做到連續數十載一年寫一本書!于是,從那時開始,我們也開始嘗試有計劃地學習、有計劃地寫書。
? 化解繁重的工作和技能精進之間的矛盾
在2018年12月的作譯者聚會之后不久,我們再次受邀參加電子工業出版社在杭州舉辦的作譯者聚會。這次聚會上,一位嘉賓的話又讓我獲益匪淺,他說“視野的高度決定了做事的高度”。在他的影響下,我閱讀了吳軍博士的《見識》一書,其中“西瓜與芝麻”和“不做偽工作者”的故事令人印象深刻。這讓我聯想到,自己及身邊的同事、朋友們,也未嘗不是經常做著撿芝麻的事情,沉迷于低效率的勤奮而不自知,由于工作時長問題,相當多的人也缺少精進的時間和精力。
不少朋友曾經問我如何從零開始學習MySQL,這些人中有剛走出校園的實習生、程序員,也有想從其他數據庫開發轉向MySQL開發的開發者。對于這一問題,我一時間不知如何作答,但問的人多了,一來我不好意思總說自己也不知道如何學習MySQL,二來突然發覺這或許是一個需要有人站出來解決的問題。于是我開始思考,想象作為一個MySQL“小白”應該如何入門。
經過不斷的思考,我慢慢有了一些答案。例如,可以嘗試系統地研究某個知識點,將其研究透徹,然后分享出來供大家一起學習,以便幫助那些沒有足夠精力和時間精進的朋友們快速進步,讓那些可能走彎路的朋友們少走彎路。或許這就像吳軍博士在《文明之光》中所描述的那樣,當農耕文明發展到一定階段,賴以生存的食物不再短缺的時候,就能夠騰出一部分人力不再從事農耕勞作,轉而專門從事滿足新需求的工作,如此這般,人類文明便可以不斷向前進步。
? 系統地學習和研究某個課題
借用吳軍博士的話說,一本書可以看作系統學習和研究某個課題后的答卷,就好比在大學里寫論文一樣,它能夠驗證你對課題的學習和研究是否有成效,讓大家都可以看見、分享你的學習和研究成果。
? 鍛煉寫作能力
寫作是一項技能,需要反復地刻意練習,而寫書的過程通常要求高、周期長,這是一個非常好的練習機會。
掌握正確的學習和研究方法
要系統地學習和研究一個課題,按照由淺入深的順序,我們可以將其過程大致分為如下三個階段:
? 第一階段:認識整體
對于一個復雜課題,可以先從整體上搞清楚它的知識體系組成框架,搞清楚其中各個組成部分(知識模塊)的大致脈絡,從而從全局上建立起初步認知,以便為下一階段選擇知識模塊進行深入研究做好鋪墊。
? 第二階段:逐一深入
基于第一階段的整體認識,可以優先選擇一些工作中需要用到的知識模塊,或者感興趣的知識模塊,作為子課題逐一進行深入的系統研究。
? 第三階段:回歸整體
由于人的精力有限,在第二階段,深入研究各知識模板期間,一些知識模塊可能會被遺忘,因此需要回歸整體,結合自己的驗證與理解,建立牢固的知識體系。
在學習和研究的過程中要勤動手記錄,可將零散的知識整理為博客文章,博客文章積累到一定數量之后亦可整理為圖書,持續地做這樣的知識積累工作,直到形成完善的知識體系,日后可供自己與他人使用。
2019年11月出版的《千金良方:MySQL性能優化金字塔法則》,可以說是我們在第二階段中對一個子課題(MySQL性能優化)的答卷,而本書則可以說是我們對另一個子課題(MySQL主從復制)的答卷。對于MySQL來說,主從復制是一個非常重要的知識模塊,而且據我所知,還有非常多從事MySQL相關工作的同行們,對MySQL主從復制的原理、應用場景等知識掌握得并不全面,甚至對其一知半解的人也不在少數。因此,在本書中,我們將其作為重點展開介紹。不過,遺憾的是,在學習和研究的第一階段,我們還沒有撰寫相關圖書,但我們正在積極籌備中,在不久的將來會為廣大讀者朋友們交上一份滿意的“答卷”!
MySQL的數據生態
MySQL的二進制日志記錄了一個數據庫實例內數據的變更,這些內容是按照時間的先后順序記錄的。根據具體的二進制日志格式選項設置,可以記錄數據庫實例內執行的原始SQL語句文本,也可以記錄數據庫實例內執行SQL語句時產生的數據變更的行記錄值。二進制日志可以滿足類似如下一些應用場景:
? MySQL Server崩潰之后對其進行恢復時,二進制日志作為事務的協調者。
對于一個未完成提交的事務,MySQL Server崩潰之后進行恢復時,會在二進制日志中檢查是否存在對應的內容,如果存在,則事務可以重新提交,如果不存在(或沒有啟用二進制日志記錄功能),則必須回滾事務,將該事務修改的記錄進行回滾。
? 在不同實例間進行數據同步(主從復制、組復制)。
主庫中的數據變更被記錄到二進制日志,然后主庫將二進制日志發送給從庫,從庫使用這些二進制日志進行回放,模擬主庫中執行的操作,從而實現主從庫之間的數據同步。
? 數據異地容災。
可以在異地數據中心增加一臺服務器,將其配置為新的從庫,從主庫中獲取二進制日志進行回放,達到數據異地容災的目的;也可以由應用程序模擬一個從庫,從主庫中獲取二進制日志,進行解析、處理,然后將數據存放在容災專用的系統中。
? 恢復被誤刪除的數據(通常稱為“數據閃回”)。
通常,對于未提交的事務,事務的ACID特性能夠保證數據的一致性,直接使用事務提供的回滾功能即可實現對誤刪除數據的恢復,不受事務控制的修改語句除外,因為不受事務控制的語句修改的數據無法執行回滾。但事務一旦完成提交,就無法再對數據進行回滾,這時可以對二進制日志中記錄的值與條件進行反轉,生成新的SQL語句(要求二進制日志以row格式記錄,必須記錄全鏡像,且只支持增/刪/改語句的反向操作),然后重新在數據庫實例中執行新的SQL語句,從而恢復被誤刪除的數據。
? 數據在異構數據庫之間流轉。
二進制日志中記錄的是數據的邏輯變更,可以從中提取出數據的純文本和字段的順序,然后通過應用程序做一些處理,數據就可以在異構數據庫之間流轉了。這是其他大多數數據庫軟件不具備的特性。
二進制日志獨有的特性是MySQL數據流動與循環的基石,在不同應用場景下形成了獨特的“數據生態”,這也是本書名字的由來。
讀者對象
無論你是MySQL的初學者、數據庫架構師及相關開發人員、非MySQL數據庫DBA,還是中高級的MySQL DBA,認真閱讀此書,相信或多或少都能有所收獲。
? MySQL的初學者、MySQL相關開發人員、非MySQL數據庫的DBA,可以從頭開始完整學習MySQL的復制技術。
? 數據庫架構師、中高級MySQL DBA,可以借助本書對MySQL復制技術的相關知識進行查漏補缺,掃除盲點。
如何閱讀本書
全書分為“基礎篇”“方案篇”“參考篇”,其中:
? “基礎篇”對MySQL主從復制技術的用途、概念、基本原理及演進等進行全方位的介紹。
? “方案篇”對MySQL主從復制技術在生產中的應用場景、復制拓撲的生命管理周期、高可用切換與主庫故障轉移等進行全方位的介紹。
? “參考篇”對MySQL二進制日志的基本組成結構、常見的復制對象在主從復制拓撲中的流轉過程等進行全方位的介紹。
對于初學者、MySQL相關開發人員、非MySQL數據庫的DBA而言,如果時間充足,建議從頭到尾依次學習本書內容。
數據庫架構師、中高級MySQL DBA則可以通過目錄快速查找所需內容。
如果你具備一定的MySQL源碼閱讀能力,或者想要挑戰更高難度,可以結合簡書平臺高鵬的專欄“深入理解主從原理32講”中的系列文章進行學習。對該專欄中的內容,高鵬也進行了整理,并整理成了《深入理解MySQL主從原理》一書,有需要的讀者朋友可自行購買。
作者分工
本書作者各自負責的章節:
? 羅小波:負責撰寫“基礎篇”“方案篇”,以及“參考篇”中的第28章。
? 沈剛:負責撰寫“參考篇”中除第28章以外的其他章節,以及博文視點官網的附錄資源。
致謝
首先,非常感謝給本書作序的大拿:葉金榮老師、熊軍、徐軼韜。感謝撰寫封底推薦語的大拿:林曉斌(丁奇)、高鵬(八怪)、溫正湖、楊奇龍、熊中哲、李春。感謝他們的認可與支持!
其次,非常感謝為本書校稿的朋友們:劉云、董紅禹、高鵬。感謝他們不辭辛苦,反復咀嚼文字,努力尋找書稿中的紕漏,幫助提升閱讀體驗!
再次,非常感謝參與本書命名討論的朋友們:李春、董紅禹、徐婷、杜蓉、符隆美、孫黎!
最后,非常感謝幫忙為本書進行宣傳的葉金榮老師、大力配合我們推動圖書出版事宜的電子工業出版社編輯符隆美,以及其他負責內容審核、校對、排版的編輯們!
內容簡介:

全書共分為 3 篇:基礎篇、方案篇和參考篇,按照“基本原理”→“生產實踐”→“更多參考”的邏輯順序講述,書中配了大量的原理與方案示意圖,力求用通俗易懂的語言、直觀明了的示意圖、完整的知識涵蓋面將 MySQL 的復制技術講透。其中,基礎篇側重介紹主從復制的原理和復制技術的演進,方案篇側重介紹主從復制技術在生產環境中的應用方案,參考篇側重介紹二進制日志的基本組成以及主從復制中常見對象復制的安全性等。
目錄:

基 礎 篇
第1章 復制的概述 2
1.1 適用場景 2
1.2 數據同步方法 3
1.3 數據同步類型 4
1.4 復制格式 4
第2章 復制的基本原理 6
2.1 概述 6
2.2 細節 7
第3章 復制格式詳解 10
3.1 復制格式概述 10
3.2 復制格式明細 11
3.2.1 基于STATEMENT和基于ROW的復制的優缺點 11
3.2.2 使用ROW格式的二進制日志進行復制 14
3.3 如何確定與記錄復制中的安全和不安全語句 15
第4章 傳統復制與GTID復制 18
4.1 傳統復制 18
4.2 GTID復制 19
4.2.1 GTID的格式和存儲 19
4.2.2 GTID的生命周期 23
4.2.3 GTID 自動定位 26
4.2.4 GTID復制模式的限制 27
第5章 半同步復制 29
5.1 半同步復制的原理 29
5.2 半同步復制的管理接口 33
5.3 半同步復制的監控 33
5.4 半同步復制的注意要點 34
第6章 多線程復制 36
6.1 單線程復制原理 36
6.2 DATABASE多線程復制 38
6.2.1 原理 38
6.2.2 系統變量的配置 40
6.3 LOGICAL_CLOCK多線程復制 40
6.3.1 原理 40
6.3.2 系統變量的配置 42
6.4 WRITESET多線程復制 42
6.4.1 原理 42
6.4.2 系統變量的配置 50
第7章 多源復制 51
7.1 復制通道 51
7.2 單通道操作命令 52
7.3 復制語句的向前兼容性 53
7.4 啟動選項和復制通道選項 53
7.5 復制通道的命名約定 55
第8章 從庫中繼日志和狀態日志 56
8.1 中繼日志和狀態日志概述 56
8.2 從庫中繼日志 57
8.3 從庫狀態日志 58
第9章 通過PERFORMANCE_SCHEMA庫檢查復制信息 66
9.1 PERFORMANCE_SCHEMA庫中的復制信息記錄表概述 66
9.2 PERFORMANCE_SCHEMA庫中的復制信息記錄表詳解 70
9.2.1 REPLICATION_APPLIER_CONFIGURATION表 70
9.2.2 REPLICATION_APPLIER_STATUS表 71
9.2.3 REPLICATION_APPLIER_STATUS_BY_COORDINATOR表 72
9.2.4 REPLICATION_APPLIER_STATUS_BY_WORKER表 74
9.2.5 REPLICATION_CONNECTION_CONFIGURATION表 76
9.2.6 REPLICATION_CONNECTION_STATUS表 78
9.2.7 REPLICATION_GROUP_MEMBER_STATS表 80
9.2.8 REPLICATION_GROUP_MEMBERS表 81
第10章 通過其他方式檢查復制信息 83
10.1 復制狀態變量 83
10.2 復制心跳信息 83
10.3 SHOW SLAVE STATUS語句輸出信息詳解 85
10.4 通過SHOW PROCESSLIST語句查看復制線程狀態 92
10.5 SHOW MASTER STATUS語句輸出詳解 93
10.6 SHOW SLAVE HOSTS語句 93
第11章 MYSQL復制延遲SECONDS_BEHIND_MASTER究竟是如何計算的 96
11.1 “口口相傳”的計算方法 96
11.2 探尋“正確”的計算方法 97
11.3 驗證 100
11.3.1 我們想確認什么 100
11.3.2 提前確認一些信息 100
11.3.3 執行驗證 102
11.4 小結 103
第12章 如何保證從庫在意外中止后安全恢復 104
12.1 從庫的崩潰與恢復概述 104
12.2 從庫的崩潰與恢復詳解 104
12.2.1 單線程復制的安全恢復 104
12.2.2 多線程復制的安全恢復 105
第13章 MYSQL SERVER復制過濾 108
13.1 MYSQL SERVER復制過濾規則概述 108
13.2 庫級別復制過濾選項的評估 109
13.3 表級別復制過濾選項的評估 113
13.4 復制過濾規則的應用 115
方 案 篇
第14章 搭建異步復制 120
14.1 操作環境信息 120
14.2 全新初始化場景 121
14.2.1 傳統復制 121
14.2.2 GTID復制 124
14.3 已有數據場景 126
14.3.1 傳統復制 127
14.3.2 GTID復制 134
14.4 變量模板 140
14.4.1 傳統復制模式的變量模板 140
14.4.2 GTID復制模式的變量模板 144
第15章 搭建半同步復制 146
15.1 半同步復制插件的安裝和配置環境要求 146
15.2 半同步復制插件的安裝和配置 147
15.2.1 關鍵步驟 147
15.2.2 詳細過程 148
15.3 半同步復制工作狀態的驗證 152
第16章 通過擴展從庫以提高復制性能 155
16.1 操作環境 155
16.2 橫向擴展 156
16.2.1 擴展從庫的簡要步驟 157
16.2.2 擴展從庫的詳細過程 158
16.2.3 配置從庫的讀負載均衡 164
16.3 提高復制性能 165
第17章 復制模式的切換 167
17.1 操作環境信息 167
17.2 復制模式的相關概念 167
17.3 傳統復制在線變更為GTID復制 173
17.3.1 簡要步驟 173
17.3.2 詳細過程 173
17.4 GTID復制在線變更為傳統復制 179
17.4.1 簡要步驟 179
17.4.2 詳細過程 180
17.5 GTID復制離線變更為傳統復制 186
17.5.1 簡要步驟 186
17.5.2 詳細過程 187
17.6 傳統復制離線變更為GTID復制 191
17.6.1 簡要步驟 191
17.6.2 詳細過程 191
第18章 復制拓撲的在線調整 196
18.1 操作環境信息 196
18.2 傳統復制模式下的復制拓撲在線調整 197
18.2.1 并行復制變更為串行復制 198
18.2.2 串行復制變更為并行復制 206
18.3 GTID復制模式下的復制拓撲在線調整 211
18.3.1 并行復制變更為串行復制 212
18.3.2 串行復制變更為并行復制 214
第19章 主從實例的例行切換 218
19.1 操作環境信息 218
19.2 在線切換 219
19.2.1 基于賬號刪除的在線切換 220
19.2.2 基于修改連接數的在線切換 232
第20章 數據庫故障轉移 239
20.1 操作環境信息 240
20.2 主庫故障轉移的關鍵步驟 241
20.3 主庫故障轉移的詳細過程 243
20.3.1 環境的準備 243
20.3.2 執行步驟 245
第21章 搭建多源復制 255
21.1 操作環境信息 255
21.2 基于傳統復制的多源復制 256
21.2.1 傳統復制模式下的單線程多源復制 256
21.2.2 傳統復制模式下的多線程多源復制 261
21.3 基于GTID復制的多源復制 263
21.3.1 GTID復制模式下的單線程多源復制 264
21.3.2 GTID復制模式下的多線程多源復制 267
21.4 多源復制拓撲中復制相關的操作語句變化 268
第22章 MYSQL版本升級 273
22.1 MYSQL版本之間的復制兼容性 273
22.2 升級復制的設置 274
第23章 將不同數據庫的數據復制到不同實例 276
23.1 操作環境信息 276
23.2 通過設置復制過濾規則將不同數據庫的數據復制到不同實例 277
23.2.1 通過只讀選項配置復制過濾規則 278
23.2.2 通過動態語句配置復制過濾規則 286
第24章 發生數據誤操作之后的處理方案 293
24.1 操作環境信息 294
24.2 主庫發生誤操作后的數據恢復 295
24.2.1 通過延遲復制恢復數據 296
24.2.2 通過閃回工具恢復數據 302
24.3 從庫發生誤操作后的數據恢復 309
24.3.1 通過修改系統變量SLAVE_EXEC_MODE恢復數據 309
24.3.2 通過GTID特性注入空事務恢復數據 316
第25章 常用復制故障排除方案 323
25.1 確認故障現象 323
25.2 信息收集與故障排查 323
25.3 復制故障的修復 325
25.4 無法解決的問題 326
參 考 篇
第26章 二進制日志文件的基本組成 328
26.1 什么是二進制日志 328
26.2 二進制日志的組成 328
26.3 二進制日志內容解析 329
26.3.1 基于ROW的復制的二進制日志內容解析 330
26.3.2 基于STATEMENT的復制的二進制日志內容解析 344
26.4 小結 351
第27章 常規DDL操作解析 352
27.1 操作環境信息 352
27.2 常規DDL操作示例 353
27.3 二進制日志內容解析 356
27.4 小結 359

第28章 為何二進制日志中同一個事務的事件時間點會亂序 360
28.1 操作環境信息 360
28.2 驗證前的準備 360
28.3 驗證過程 361
第29章 復制AUTO_INCREMENT字段 367
29.1 操作環境信息 367
29.2 復制AUTO_INCREMENT字段的操作示例 367
29.3 對二進制日志的解析及解釋 368
29.3.1 基于ROW的復制中AUTO_INCREMENT字段的復制 368
29.3.2 基于STATEMENT的復制中AUTO_INCREMENT字段的復制 369
29.3.3 混合復制中AUTO_INCREMENT字段的復制 371
29.4 使用AUTO_INCREMENT字段時的注意事項 371
29.5 小結 372
第30章 復制CREATE ... IF NOT EXISTS語句 373
30.1 操作環境信息 373
30.2 復制CREATE ... IF NOT EXISTS語句的操作演示 374
30.3 二進制日志解析結果的解釋 375
30.4 小結 376
第31章 復制CREATE TABLE ... SELECT語句 377
31.1 操作環境信息 377
31.2 復制CREATE TABLE ... SELECT語句的操作示例 377
31.3 二進制日志的解析及解釋 380
31.3.1 STATEMENT格式二進制日志的解析及解釋 380
31.3.2 ROW格式和MIXED格式二進制日志的解析及解釋 381
31.4 使用CREATE TABLE ... SELECT語句時的注意事項 384
31.5 小結 384
第32章 在主從復制中使用不同的表定義 385
32.1 操作環境信息 385
32.2 主從庫的表字段數不同時如何復制 386
32.2.1 源表字段數多于目標表字段數 386
32.2.2 目標表字段數多于源表字段數 388
32.3 不同類型字段的復制 389
32.3.1 屬性提升 390
32.3.2 有損轉換與無損轉換 390
32.4 小結 391
第33章 復制中的調用功能 392
33.1 操作環境信息 392
33.2 復制中的調用功能操作示例 392
33.2.1 在READ-COMMITTED隔離級別、基于ROW的復制場景下數據庫的
操作記錄 393
33.2.2 在READ-COMMITTED隔離級別、基于STATEMENT的復制場景下
數據庫的操作記錄 396
33.3 二進制日志的解析及解釋 396
33.3.1 ROW和MIXED格式二進制日志的解析及解釋 396
33.3.2 STATEMENT格式二進制日志的解析及解釋 402
33.4 小結 407
第34章 復制LIMIT子句 408
34.1 操作環境信息 408
34.2 復制LIMIT子句的操作示例 408
34.3 二進制日志的解析及解釋 409
34.3.1 STATEMENT格式二進制日志的解析及解釋 410
34.3.2 ROW格式和MIXED格式二進制日志的解析及解釋 411
34.4 小結 414
第35章 復制LOAD DATA語句 415
35.1 操作環境信息 415
35.2 復制LOAD DATA語句的操作示例 416
35.2.1 準備演示數據 416
35.2.2 LOAD DATA語句的操作 417
35.3 二進制日志的解析及解釋 417
35.3.1 STATEMENT格式二進制日志的解析及解釋 417
35.3.2 ROW格式和MIXED格式二進制日志的解析及解釋 419
35.4 小結 420
第36章 系統變量MAX_ALLOWED_PACKET對復制的影響 421
36.1 系統變量簡介 421
36.2 操作環境信息 422
36.3 MAX_ALLOWED_PACKET對復制的影響操作示例 423
36.3.1 MAX_ALLOWED_PACKET對主庫的影響 423
36.3.2 MAX_ALLOWED_PACKET對從庫的影響 424
36.4 小結 427
第37章 復制臨時表 429
37.1 操作環境信息 429
37.2 復制臨時表的操作示例 429
37.2.1 基于STATEMENT的復制且隔離級別為REPEATABLE-READ 430
37.2.2 基于ROW的復制且隔離級別為REPEATABLE-READ 432
37.2.3 混合復制且隔離級別為REPEATABLE-READ 433
37.2.4 使用臨時表時如何安全關閉從庫 433
37.3 與臨時表相關的其他注意事項 435
37.4 小結 435
第38章 復制中的事務不一致問題 436
38.1 事務不一致的場景類型 436
38.2 事務不一致的原因 437
38.3 事務不一致的后果 437
38.4 小結 438
序: