|
-- 會員 / 註冊 --
|
|
|
|
高可用MySQL(第2版) ( 簡體 字) |
作者:寧青,唐李洋 | 類別:1. -> 資料庫 -> MySQL |
譯者: |
出版社:電子工業出版社 | 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 |
序: |
|