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

高可用MySQL(第2版)

( 簡體 字)
作者:寧青,唐李洋類別:1. -> 資料庫 -> MySQL
譯者:
出版社:電子工業出版社高可用MySQL(第2版) 3dWoo書號: 42437
詢問書籍請說出此書號!

缺書
NT售價: 640

出版日:9/1/2015
頁數:680
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121266881
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

第 2 版序
2011年,Pinterest開始發展起來。有人說我們比目前其他任何創業公司的發展都要快。剛開始,我們每天都要面臨一個新的擴展性瓶頸,它會拖慢整個網站甚至搞垮一切。還記得我們無論去哪里都要帶上筆記本電腦,甚至還給它們起了名字。那時我們的腦子里深深刻印著那些停機警告的短信聲音。
當基礎設施不斷地被逼到極限的時候,你就不得不祈求另一種簡單的出路。在成長的過程中,我們嘗試了至少 5個廣為人知的數據庫技術,它們都聲稱能夠解決我們所有的問題,可每一次都災難性地失敗了。除了 MySQL。那是 2011年 9月,我們決定從頭再來。我們用 MySQL、Memcache和 Redis對一切進行了重新設計,只有三個工程師而已。
MySQL?為什么是 MySQL?對每一種技術,我們都考慮了其最大關注點,并提問同樣的問題。下面是我們對 MySQL的考慮:
y它解決了我們的存儲需求嗎?沒錯,我們需要映射、索引、排序和 blob存儲,這些 MySQL都有。
y它常用嗎?你可以招聘到相關員工嗎? MySQL是目前生產線上最常使用的數據庫之一。很容易招到使用過 MySQL的人,我們可以到帕羅奧多市外走走,大喊我們需要 MySQL工程師,就會冒出來好幾個。這可不是開玩笑的。
y它的社區活躍嗎?非常活躍。有好多非常棒的書,和一個強大的在線社區。 y面對故障,它健壯嗎?即使在最惡劣的情況下,我們也從來沒有丟失過數據。 y它的擴展性如何?就它本身來說,只是一個很小的組件。我們需要一種上層的分片
方案(這是完全是另一個問題)。
y你會是最大的用戶嗎?不,目前不是。最大的用戶包括 Facebook、Twitter和 Google。除非你能夠改進一種技術,否則你不會想要成為它最大的用戶。如果你是最大的用戶,你會碰到一些新的擴展性問題,而其他人根本沒機會遇到。
y 它的成熟度如何?真正的區別在于成熟度。根據復雜度的不同,成熟度就好比衡
量完成一個程序所需的血、汗和淚。 MySQL的確復雜,但可比不上那些神奇的自
動集群 NoSQL方案。而且, MySQL擁有 28年最好和最聰明的貢獻,來自于諸如
Facebook和 Google那樣大規模使用它的公司。根據我們的成熟度定義,在我們審
查的所有技術中,MySQL是一個明智的選擇。
y 有好的調試工具嗎?作為一個成熟的產品,你當然需要強大的調試和分析工具,因
為人們很容易遇到一些類似的棘手情況。比如你可能在凌晨三點遇到問題(不止一
次)。相比用另一種技術重寫一遍熬到凌晨六點,發現問題的根源然后回去睡覺舒服
多了。

我們調查了差不多 10種數據庫技術后發現選擇 MySQL是一個明智的選擇。MySQL很棒,
但它好比不給你任何行李就把你丟到目的地,讓你不得不自食其力。它運行順利的時候
你可以連接,但一旦你開始使用它進行擴展,問題便開始滿天飛:

y我的查詢執行很慢,怎么辦?
y我是不是應該啟用壓縮?怎么做呢?
y擴展有哪些方法?
y怎樣復制?主 -主復制(master-master replication)怎樣?
y復制停止了!怎么辦?
y持久性(durability,即 fsync速度)有哪些選項?
y我的緩沖區應該多大?
y mysql.ini文件里有那么多字段,它們是什么意思?應該怎么設置?
y我剛剛不小心寫到 slave里面去了!怎么防止下次發生同樣的事情?
y如何防止不帶 where子句的 update命令執行?
y應該用什么調試和分析工具?
y要使用 InnoDB、MyISAM或者其他存儲引擎嗎?

在線社區有助于回答問題,找到范例,修復漏洞,以及提供解決方法。但通常缺乏強大
的凝聚力,而關于架構的深層討論更是寥寥無幾。我們知道如何小規模地使用 MySQL,
但這種規模和步調簡直是在開玩笑。本書可幫助我們更深刻地了解 MySQL。

MySQL 5.6有一個新特性,即全局事務處理(Global Transaction Handlers),為復制樹(replication tree)中的每個事務添加一個唯一標識。這個新特性使故障轉移和 slave提升變得容易很多。為此我們等了太久,終于在新版本中很好地涵蓋了。
當我們采用分片方案進行重大的重新架構時,關于架構決策問題我們參考了本書,比如復制技術和拓撲、數據分享方案、監測、調整以及云相關的問題等。它讓我們更深刻地理解 MySQL的底層運作,使我們更加了解高層查詢、訪問模式、使用什么結構,以及之后的重復設計。時至今日,MySQL架構仍然為 Pinterest的核心數據服務。
——Yashwanth Nelapati 和 Marty Weiner Pinterest 2014年 2月

第 1 版序
關于復制(replication)的研究很多,但其中的大多數研究成果都沒有得到應用。相反, MySQL復制已經被廣泛部署,但其原理并不為大多數人所知。本書將改變這種狀況。本書中介紹的內容比較適合以下人群:愿意閱讀大量的源代碼,而且在生產環境中花很多時間進行調試,能夠在深夜會議中探討這些內容的人。
復制允許在出現不可避免的故障的情況下提供高可用的數據服務。故障的原因很多,包括磁盤、服務器或數據中心的損耗。即使所有硬件都是完美無缺且完全冗余的,還有人為因素的影響。例如,數據庫表可能被誤刪,應用程序可能寫入了不正確的數據等,總會有偶然故障發生。但通過合理的準備工作,可以保證從故障中恢復,關鍵是冗余和備份。 MySQL復制支持冗余和備份。
但 MySQL的復制并不僅限于支持故障恢復,它還頻繁用于讀操作的橫向擴展( scale out)。MySQL可以實現大量服務器的高效復制。對于那些讀頻繁的應用,在商用硬件上支持大量查詢是一個低成本的有效策略。
MySQL復制還有其他有用的應用。在線數據定義語言( DDL)是關系型數據庫管理系統中非常復雜的一個特性。 MySQL不支持在線 DDL,但通過使用復制,往往可以足夠好地部分實現它。如果有創意,還可以使用復制做更多的事情。
復制是使得 MySQL如此廣泛流行的特性之一,它允許將流行的 MySQL原型轉換為成功的商業關鍵部署。復制主張簡單和便于使用,這一點和 MySQL十分相似。然而,在生產環境中運行往往不夠完美。本書解釋了成功使用 MySQL復制所必須知道的內容,幫助讀者理解復制是怎樣實現的,哪些地方可能出錯,怎樣防止問題的出現,以及怎樣在問題出現的時候解決它們——盡管你已經很努力地避免這些問題。
MySQL復制還在繼續完善中。與故障一樣,變化總是存在的。 MySQL需要不斷應對這些變化,使得復制更高效、更健壯、更有趣。例如,基于行的復制( Row-based replication)是 MySQL 5.1中的新特性。
盡管 MySQL部署形態各異,規模各不相同,我最關心的還是互聯網應用的數據服務。 MySQL到分布式存儲系統(如 HBase和 Hadoop)復制的可能性也使我興奮不已。這樣 MySQL就可以更好地共享數據中心。
我曾經在 Facebook和 Google的團隊支持重要的 MySQL部署,有機會和時間學習這本書中所覆蓋的很多東西。本書的作者們同樣是 MySQL復制的專家,通過閱讀這本書,讀者可以分享他們的專業知識。
——Mark Callaghan

前言

本書的作者們參與創建了 MySQL組件,并在此領域工作了多年。Charles Bell博士是帶領 MySQL Utilities小組的高級開發人員,同時還參與復制和備份工作。他的興趣涵蓋 MySQL的各個方面、數據庫理論、軟件工程、微控制器和 3D打印等。Mats Kindahl博士是主要的高級開發人員,目前帶領 MySQL高可用和擴展性小組,是若干 MySQL特性的架構師和實現者。Lars Thalmann博士是 MySQL Replication、Backup、Connectors和 Utilities小組的開發總監和技術領導,他設計了很多復制和備份的特性,主要從事 MySQL集群、復制和備份技術的開發工作。
為了填補 MySQL相關書籍的空白,我們撰寫了這本書。關于 MySQL有很多出色的書籍,但很少集中講述它的高級特性和應用,諸如高可用性、可靠性和可維護性等。本書將涵蓋所有這些主題,當然還有其他更多內容。
為了使閱讀更加有趣,我們添加了一個遭遇老板提出種種要求的 MySQL從業者的小故事。在該故事中,你將認識 Joel Thomas,最近他決定在一家剛開始使用 MySQL的公司工作。你將看到 Joel學習 MySQL的方式,以及如何處理 MySQL從業者所面臨的一些最棘手的問題。希望你會覺得這部分內容很有趣。
讀者對象
本書的讀者對象是 MySQL從業人士。我們假設讀者已擁有 SQL、MySQL管理和操作系統的基礎背景知識。我們會介紹一些關于復制、災難恢復、系統監控及其他以高可用性為主題的背景信息。其他書籍的第 1章也會介紹相關有用的背景知識。

本書的組織結構
本書分為兩部分。第 1部分包括 MySQL的高可用性和橫擴展性。由于這些問題很大程度上取決于復制,所以本部分大多都集中在這個主題上。第 2部分介紹構建健壯的數據中心時,監控和性能方面的問題。
第 1部分高可用性和可擴展性
第 1章引言 解釋了本書的價值,并提供了閱讀的情境。第 2章 MySQL Replicant庫 介紹了貫穿本書的一個 Python庫。第 3章 MySQL 復制原理 討論了設置基本復制的手動和自動流程。第 4章二進制日志 解釋了與復制、災難恢復、故障排除和其他管理任務相關的關鍵文
件。第 5章高可用性復制 給出了服務器故障恢復的多種方法,包括自動化腳本的使用。第 6章橫向擴展的 MySQL復制 介紹了提升大數據集讀擴展性的多種技術和拓撲結構。第 7章數據分片 描述了處理超大數據庫的技術,以及通過分片提升數據庫的寫擴展性。第 8章深入復制 講述了諸如安全數據傳輸和基于行的復制等主題。第 9章 MySQL集群 描述了如何使用該工具達到高可用性。

第 2部分監控和管理
第 10章監控入門 介紹了必須注意的主要操作系統參數,以及監控它們的工具。第 11章 MySQL監控 介紹了幾種數據庫行為和性能的監控工具。第 12章存儲引擎監控 更加詳細地解釋了需要監控的參數,重點描述 MyISAM或者 InnoDB相關的問題。第 13章監控復制 詳細描述了如何跟蹤主節點和從節點。第 14章復制的故障排除 介紹了如何處理故障、重啟、崩潰及其他意外事故。第 15章保護你的投資 解釋了備份和災難恢復技術的使用。第 16章 MySQL企業監控器 介紹了用于簡化上述很多任務的一個工具套件。
第 17章使用 MySQL實用工具管理 MySQL復制 介紹了 MySQL實用工具,包含管理 MySQL服務器的一整套工具。

索引
索引 A為復制的提示和技巧,列舉了特定情況下一些有用的方法。
索引 B為一個 GTID的實現,給出了如果服務器不支持 GTID,處理事務故障轉移的實現方法。

致謝
作者要感謝這一版和上一版的技術審核人員: Mark Callaghan,Morgan Tocker, Sveta Smirnova, Luis Soares, Sheeri Kritzer Cabral, Alfie John和 Colin Charles。你們對細節的關注以及有見地的建議都是無價的。沒有你們的幫助,就沒有高質量的書。
還要感謝我們 MySQL小組極有才華的同事們,以及 MySQL社區提供評論的人們,包
括 Alfranio Correia,Andrei Elkin,Zhen-Xing He,Serge Kozlov,Sven Sandberg,Luis Soares,Rafal Somla,Li-Bing Song,Ingo Struwing,Dao-Gang Qu,Giuseppe Maxia和 Narayanan Venkateswaran,他們孜孜不倦的努力使得 MySQL變得健壯和強大。特別感謝 MySQL客戶支持的專家們,他們幫助我們縮小了客戶需求與我們改進產品的愿望之間的差距。還要感謝很多社區成員,他們如此忘我地投入時間和精力改善 MySQL,造福大家。
最后,同時也是最重要的,要感謝我們的編輯,Andy Oram,他幫助我們完成這項工作,并忍受著我們對于 MySQL時而理智時而過度積極的熱情。向整個 O’Reilly小組致以最誠摯的謝意,特別是編輯,感謝他們的耐心,我們如此努力地往一本已經很龐大的書里面塞了這么多新的內容。
Charles要感謝他最愛的妻子, Annette,當他忙于本書的工作而不在家的時候,感謝她的耐心和理解。Charles還要感謝他在 Oracle工作的 MySQL小組的同事們,他們每天無償地將自己的智慧貢獻給每個人。最后,Charles要感謝他基督教的兄弟姐妹們,他們每天都在考驗和支持著他。
Mats要感謝他的妻子 Lill和兩個兒子 Jon和 Hannes,感謝他們在自己最困難的時候給予無條件的愛和理解。他們是他一生的摯愛,他無法想象沒有他們的生活。Mats還要感謝他在 Oracle內外的 MySQL同事們,以及所有那些有趣、驚喜和鼓舞人心的時光:你們是這行中最能干的人。
Lars要感謝他的女朋友 Claudia,他愛她溢于言表。他還要感謝現在和以前的所有同事,他們讓 MySQL成為一個十分有趣的工作場所。事實上,這并不是一個場所。MySQL開發小組的分布式本質和很多專業開發者的開放胸懷是真正了不起的。 MySQL社區有一種特殊的精神,使 MySQL工作成為一個光榮的任務。我們共同創造著非凡。令人吃驚的是,最初的這樣一小撮人,成功地創造了一個今天服務于許多財富 500強公司的產品。
內容簡介:

本書主要講解真實環境下如何使用MySQL的復制、集群和監控特性,揭示MySQL可靠性和高可用性的方方面面。本書定位于解決MySQL數據庫的常見應用瓶頸,在保持MySQL的持續可用性的前提下,挖潛各種提高性能的解決方案。本書描述了很多MySQL工具的變化。涵蓋了5.5版本的知識,以及若干5.6版本的功能。本書的作者正是書中介紹的很多工具的設計師,本書揭示了MySQL可靠性和高可用性的許多不為人知的方面。

目錄:

目錄
前言. .. xxi


第 1章 引言.... 2

到底什么是復制 ...... 4
那么,是否需要備份 ... 5
什么是監控 .... 6
其他閱讀材料 .... 6
小結 .... 7

第 2章 MySQL.Replicant庫. .... 8

基本類和函數 .. 12
對各種操作系統的支持... 13
服務器 .... 13
服務器角色 ...... 15
小結 .. 17

第 3章 MySQL復制原理.. ... 18

復制的基本步驟 .... 19
配置 master .... 20
配置 slave ...... 21
連接 master和 slave 22
二進制日志簡介 .... 23
二進制日志記錄了什么 ...... 24
觀察復制的動作 ...... 25
二進制日志的結構和內容 .. 27
建立新 slave ..... 30
克隆 master .... 31
克隆 slave ...... 33
克隆操作的腳本 ...... 35
執行常見的復制任務 ...... 37
報表 ..... 37
小結 .. 43

第 4章 二進制日志... 45

二進制日志的結構 ..... 46
binlog事件的結構 ... 48
事件校驗 .. 50
將語句寫入日志 .... 51
寫入 DML語句 .. 52
寫入 DDL語句 ... 52
寫入查詢 .. 52
LOAD DATA INFILE語句 ...... 58
二進制日志過濾器 .. 60
觸發器、事件和存儲例程 .. 62
存儲過程 .. 68
存儲函數 .. 70
事件 ..... 74
特殊結構 .. 75
非事務型變更和錯誤處理 .. 75
將事務寫入日志 .... 78
使用 XA進行分布式事務處理..... 83
二進制日志的組提交 ..... 86
基于行的復制 .. 88
啟用基于行的復制 .. 89
使用混合模式 ..... 90
二進制日志管理 .... 90
二進制日志和系統崩潰安全 ... 91
binlog文件輪換 ...... 92
事故 ..... 94
清除 binlog文件 ...... 94
mysqlbinlog實用工具 ..... 95
基本用法 .. 96
解釋事件 ..... 104
二進制日志的選項和變量 ... 108
基于行的復制參數 110
小結 ......111

第 5章 面向高可用性的復制...... 112

冗余 ..... 113
計劃 ..... 114
slave故障 .... 115
master故障 .. 115
relay故障 .... 116
災難恢復 ..... 116
方法 ..... 116
熱備份 .... 118
雙主結構 ..... 122
提升 slave .... 131
環形復制 ..... 135
小結 ..... 137

第 6章 面向橫向擴展的 MySQL復制... 138

橫向擴展讀操作,而不是寫操作 .. 140
異步復制的價值 .. 141
管理復制拓撲 ..... 142
應用層的負載均衡 145
級聯復制 ... 153
配置 relay .... 154
使用 Python添加 relay ..... 155
專用 slave.. 156
過濾復制事件 ... 157
使用過濾將事件分配給 slave ..... 159
數據的一致性管理 ... 160
非級聯部署的一致性 ... 161
級聯部署的一致性 163
小結 ..... 169

第 7章 數據分片..... 171

什么是數據分片 .. 172
為什么要分片 ... 173
分片的局限性 ... 174
分片方案的要素 .. 176
高層分片架構 ... 177
數據分區 ... 178
分配分片 ..... 182
映射分片關鍵字 .. 186
分片方案 ..... 186
分片映射函數 ... 190
處理查詢和事務調度 .... 194
處理事務 ..... 195
分配查詢 ..... 197
分片管理 ... 199
將分片遷移到其他節點 .... 199
分割分片 ..... 203
小結 ..... 203

第 8章 深入復制.... 204

復制架構基礎 ..... 205
中繼日志的結構 .... 206
復制線程 ..... 209
啟動和停止 slave線程 ..... 210
通過 Internet運行復制 .. 211
使用內置支持建立安全復制 ...... 212
使用 Stunnel建立安全復制 ... 213
細粒度控制復制 .. 215
關于復制狀態的信息 ... 215
處理斷開連接的選項 .... 223
slave如何處理事件 .. 224
管理 I/O線程 ... 224
SQL線程的處理 ... 225
半同步復制 .... 231
配置半同步復制 .... 232
監控半同步復制 .... 234
全局事務標識符 .. 234
使用 GTID配置復制 ... 235
使用 GTID進行故障轉移 ..... 237
使用 GTID提升 slave.. 238
GTID的復制 .... 240
slave的安全和恢復 .. 242
同步、事務以及數據庫崩潰問題 .... 242
事務型復制.. 244
保護非事務型語句的規則 ..... 248
多源復制 ... 248
基于行的復制的細節 .... 251
Table_map事件 ..... 253
行事件的結構 ... 255
行事件的執行 ... 256
事件和觸發器 ... 257
基于行的復制中的過濾 .... 259
部分行復制.. 260
小結 ..... 261

第 9章 MySQL集群... 263

什么是 MySQL集群 ..... 264
術語和組件.. 264
MySQL集群和 MySQL有何不同 ... 265
典型配置 ..... 265
MySQL集群的特點 .... 266
本地和全局冗余 .... 268
日志處理 ..... 268
冗余和分布式數據 269
MySQL集群的架構 ...... 269
如何存儲數據 ... 271
分區 ... 274
事務管理 ..... 275
聯機操作 ..... 275
配置實例 ... 276
入門 ... 277
啟動 MySQL集群 . 279
測試集群 ..... 283
關閉集群 ..... 284
獲得高可用性 ..... 284
系統恢復 ..... 287
節點恢復 ..... 288
復制 ... 289
獲得高性能 .... 293
高性能的注意事項 294
高性能的最佳實踐 295
小結 ..... 297


第 10章 監控入門. .. 300
監控方法 ... 301
監控的好處 .... 301
監控系統組件 ..... 302
處理器 .... 302
內存 ... 304
磁盤 ... 304
網絡子系統.. 306
監控方案 ... 306
Linux和 UNIX監控 ..... 307
進程活動 ..... 308
內存利用率.. 312
磁盤利用率.. 314
網絡活動 ..... 317
常見系統統計信息 318
使用 cron自動監控 ..... 319
Mac OS X 監控 ... 320
System Profiler ...... 320
控制臺 .... 322
Activity Monitor .... 324
Microsoft Windows監控 ..... 327
Windows體驗 .. 327
系統健康報告 ... 329
事件查看器.. 331
可靠性監視器 ... 333
任務管理器.. 334
性能監視器.. 335
預防性維護監控 .. 337
小結 ..... 337

第 11章 監控 MySQL.. 339

什么是性能 .... 340
MySQL服務器監控 ...... 340
如何顯示 MySQL性能..... 341
性能監控 ..... 342
SQL命令 ..... 342
mysqladmin實用工具 ...... 348
MySQL工作臺...... 350
第三方工具.. 360
MySQL基準測試套件 ..... 362
服務器日志 .... 364
性能模式 ... 366
概念 ... 367
入門 ... 369
使用性能模式診斷性能問題 ...... 377
MySQL的監控分類 ...... 378
數據庫性能 .... 380
衡量數據庫的性能 380
數據庫優化的最佳實踐 .... 392
提高性能的最佳實踐 .... 400
一切都很慢.. 400
查詢慢 .... 400
應用慢 .... 401
復制慢 .... 401
小結 ..... 401

第 12章 監控存儲引擎.. 403

InnoDB...... 403
使用 SHOW ENGINE命令 ... 406
使用 InnoDB監視器 ... 409
監控日志文件 ... 413
監控緩沖池.. 414
監控表空間.. 416
使用 INFORMATION_SCHEMA表 .... 417
使用 PERFORMANCE_SCHEMA表 ... 418
其他需要考慮的參數 ... 419
InnoDB故障排除的技巧 .. 420
MyISAM ... 422
優化磁盤存儲 ... 423
修復表 .... 423
使用 MyISAM實用工具 .. 424
按索引順序存儲表 425
壓縮表 .... 426
對數據表進行碎片整理 .... 426
監控 key cache.. 426
預加載 key cache ... 427
使用多個 key cache ..... 428
其他需要考慮的參數 ... 429
小結 ..... 430

第 13章 監控復制. .. 432

入門 ..... 432
服務器設置 .... 433
包容性和排他性復制 .... 433
復制線程 ... 435
監控 master .... 437
master的監控命令 437
master的狀態變量 441
監控 slave.. 441
slave的監控命令 ... 442
slave的狀態變量 ... 446
使用 MySQL工作臺監控復制 ...... 447
其他需要考慮的問題 .... 449
網絡 ... 449
監控和管理 slave滯后 ..... 450
slave滯后的原因和預防措施 ..... 450
使用 GTID ... 452
小結 ..... 453

第 14章 復制的故障排除.... 454

哪里出錯了 .... 455
master上的問題.. 455
master崩潰及 Memory表被占用 .... 455
master崩潰及二進制日志事件丟失 ..... 456
master上查詢正常但在 slave上出錯 ... 457
崩潰之后表損壞 .... 458
master上的二進制日志損壞 ...... 459
殺死非事務型表上長時間運行的查詢.. 459
不安全的語句 ... 460
slave上的問題 .... 462
slave服務器崩潰及復制無法啟動 ... 462
slave連接超時及反復重新連接 ...... 463
slave上的查詢結果與 master上的不同 .... 463
當嘗試重啟 SSL時 slave出錯 ... 464
內存表數據丟失 .... 465
slave崩潰后臨時表丟失 .. 465
slave運行慢而且與 master不同步 .. 465
slave崩潰后數據丟失 ...... 466
崩潰后表損壞 ... 466
slave上中繼日志損壞 ...... 467
slave重啟時的多個錯誤 .. 467
slave上事務失敗的后果 .. 467
I/O線程的問題 ..... 467
SQL線程的問題:不一致 ..... 468
slave上的錯誤不一樣 ...... 468
高級復制問題 ..... 469
變更沒有在拓撲中復制 .... 469
環形復制的問題 .... 469
多 master的問題 ... 470
HA_ERR_KEY_NOT_FOUND錯誤.... 470
GTID問題 ... 470
復制的故障排除工具 .... 471
最佳實踐 ... 472
了解你的拓撲結構 472
檢查所有服務器的狀態 .... 475
檢查日志 ..... 475
檢查配置 ..... 475
有序地執行關閉操作 ... 475
有序地執行故障后的重啟操作 ... 476
手動執行失敗的查詢 ... 476
不要混合使用事務型表和非事務型表.. 477
一般步驟 ..... 477
報告復制錯誤 ..... 478
小結 ..... 479

第 15章 保護你的資產.. 481

什么是信息保護 .. 482
信息保障的三個實踐 ... 482
信息保障為什么重要 ... 483
信息完整性、災難恢復及備份的職責 .... 483
高可用性與災難恢復 ... 484
災難恢復 ..... 484
數據恢復的重要性 489
備份和恢復.. 490
備份實用程序和操作系統層的解決方案 ..... 494
MySQL企業備份 .. 495
使用 MySQL實用工具集進行數據庫的導出和導入...... 507
mysqldump工具 .... 507
物理文件復制 ... 510
邏輯卷管理器快照 511
XtraBackup .. 516
備份方法的比較 .... 516
備份和 MySQL復制 ..... 517
使用復制進行備份和恢復 ..... 518
PITR .. 518
自動備份 ... 526
小結 ..... 528

第 16章 MySQL企業版監控... 530

MySQL企業版監控入門 .... 531
產品 ... 532
剖析 MySQL企業監控器...... 532
安裝概述 ..... 533
MySQL企業監控組件 .. 537
Dashboard .... 537
監控代理 ..... 539
advisor .... 539
查詢分析器.. 541
MySQL產品支持 .. 542
使用 MySQL企業版監控.... 542
監控 ... 544
查詢分析器.. 549
更多信息 ..... 551
小結 ..... 551

第 17章 使用 MySQL實用工具管理 MySQL復制...... 553

常見的 MySQL復制任務.... 554
狀態檢查 ..... 554
停止復制 ..... 557
添加 slave .... 558
MySQL實用工具 ..... 560
入門 ... 560
不通過工作臺使用實用工具 ...... 560
通過工作臺使用實用工具 ..... 560
常用工具 ... 562
比較數據庫的一致性: mysqldbcompare ... 562
復制數據庫: mysqldbcopy ... 565
導出數據庫: mysqldbexport ...... 566
導入數據庫: mysqldbimport ..... 569
發現不同: mysqldiff ... 570
顯示磁盤使用情況: mysqldiskusage ... 574
檢查表的索引: mysqlindexcheck ... 577
查找元數據: mysqlmetagrep ..... 578
查找進程: mysqlprocgrep..... 579
克隆服務器: mysqlserverclone .. 581
顯示服務器信息: mysqlserverinfo ...... 583
克隆用戶: mysqluserclone ... 584
實用工具客戶端: mysqluc ... 585
復制的實用工具 .. 586
配置復制: mysqlreplicate ..... 586
檢查復制的配置: mysqlrplcheck .... 588
顯示拓撲結構: mysqlrplshow ... 591
高可用的實用工具 ... 592
概念 ... 592
mysqlrpladmin .. 593
mysqlfailover .... 598
創建自己的實用工具 .... 606
MySQL實用工具的結構.. 606
自定義工具的示例 607
小結 ..... 616

附錄A 復制的提示和技巧....617

附錄B 一個 GTID的實現. .. 634

索引. ...... 645
序: