-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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高可用實踐

( 簡體 字)
作者:王雪迎類別:1. -> 資料庫 -> MySQL
譯者:
出版社:清華大學出版社MySQL高可用實踐 3dWoo書號: 53171
詢問書籍請說出此書號!

缺書
NT售價: 495

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

譯者序:

前言:

毋庸置疑,開源數據庫MySQL是當今最流行的關系數據庫系統之一,無論是在國內還是國外,都具有極高的人氣。據統計,在2019年的全球數據庫市場中,MySQL以接近40%的使用率高居榜首。在此前提下,作為基礎技術支撐的核心組成部分,保持MySQL數據庫的高可用性變得極為重要。這是我寫這本書的第一個原因,希望讀者在構建自己的MySQL高可用環境時,本書能提供一定的參考和幫助。
網上關于MySQL的資料比比皆是,但大部分都是針對單一具體問題的解答,例如如何配置MySQL雙主復制等,全面系統講述MySQL高可用這方面的資料并不多見。而且,這些資料大多只給出簡單的實現方法,缺少相應的理論背景知識和分析驗證過程。這是我寫這本書的第二個原因,希望能填補缺口,讓讀者不但知其然,也知其所以然。
從2000年至今的20年里,我一直從事各種數據庫相關的應用開發和管理工作,尤其是近年來一直跟MySQL數據庫打交道。從最簡單的單實例,到各種復制,再到集群以及與中間件的配合,在其使用上積累了一些經驗和心得。這是我寫這本書的第三個原因,希望將它們加以歸納和總結,匯集成書與讀者分享。
本書內容
全書共16章,從復制、中間件、集群、存儲、優化五個方面介紹MySQL高可用技術。
第1~6章講述MySQL的復制,是MySQL高可用實現的基礎。除了包括原生的異步復制、插件實現的半同步復制,以及MySQL 5.7版本引入的組復制等基本復制技術外,還討論了幾種常見的復制拓撲,以及各種復制的性能對比。在實際應用中,GTID、部分復制、延遲復制都是針對不同場景下常用的與復制密切相關的技術,這部分內容會分別用單獨的章節加以說明。
第7~12章給出如何使用中間件構建MySQL高可用環境。具體包括MySQL自己的中間件產品Router和Fabric,以及被廣泛采用的MMM、MHA、Keepalived + LVS、Heartbeat + HAProxy等第三方MySQL高可用解決方案。每種產品使用一章的篇幅進行講解。
第13~14章介紹兩種MySQL集群:InnoDB Cluster和Galera Cluster。其中InnoDB Cluster是MySQL官方推出的集群產品,而Galera Cluster是包含在MariaDB中的MySQL多主集群。
第15章講述利用DRBD技術實現MySQL高可用。前三部分介紹的MySQL高可用解決方案都是基于MySQL自帶的各種復制技術。DRBD的實現方式則完全不同,它本身與MySQL復制毫無關系,而是一個用軟件實現的鏡像塊設備內容的存儲復制解決方案。
在全書最后的第16章,引入四個MySQL高可用環境下的優化案例,分別是:快速生成數字輔助表;將MySQL去重優化到極致;重疊時間段問題之算法優化;快速安全刪除大表。嚴格來說,本章內容并不特指高可用環境下的優化。但這些案例都取自我工作中的真實需求,具有一定的代表性和實用性,既有利于讀者借鑒解決實際問題,同時在某種程度上也能增加閱讀的趣味。
為力求嚴謹,書中所涉及產品或技術的知識絕大部分來源于相應的官方文檔。正如Linus的那句話:“Talk is cheap,show me the code”,對于每一個過程或結論,都配有詳細的實驗步驟,用實例輔以佐證,幫助讀者加深理解。
源碼下載
本書示例源碼請掃描右邊二維碼下載。如果有問題和建議,請聯系,郵件主題為“MySQL高可用性實踐”。
讀者對象
本書所定位的讀者是DBA、系統管理運維、應用程序開發、架構師等MySQL相關的技術人員。所有的描繪場景與實驗環境都是基于Linux操作系統的虛擬機。本書的讀者應具有一定的SQL、MySQL、Linux基礎。
致謝
在本書編寫過程中,得到了很多人的幫助與支持。首先要感謝我所在的公司——優貝在線提供的平臺和環境,感謝同事們工作中的鼎力相助。沒有那里的工作氛圍和團隊,也就不會有這本書。感謝清華大學出版社圖格事業部的老師和編輯們,他們的辛勤工作使得本書得以盡早與讀者見面。感謝CSDN提供的技術分享平臺,給我有一個將博客文章整理成書的機會。最后,感謝家人對我一如既往的支持。
由于水平有限,錯漏之處在所難免,希望讀者批評指正。

編者
2020年5月
內容簡介:

MySQL數據庫是現代軟件系統基礎應用的核心組成部分,如何保持MySQL的高可用性在系統應用中就變得極為重要。本書從復制、中間件、集群、存儲、優化五個方面介紹MySQL高可用技術。
本書分為16章,內容包括異步復制、半同步復制、GTID與復制、復制拓撲與性能、延遲復制與部分復制、組復制、MySQL Router、MySQL Fabric、MMM、MHA、Keepalived + LVS、Heartbeat + HAProxy、InnoDB Cluster、Galera Cluster、DRBD、優化案例等。
本書適合DBA、系統管理運維、應用程序開發、架構師等MySQL相關技術人員作為參考書,也適合作為高等院校和培訓學校相關專業的技術培訓教材。
目錄:

第1章異步復制 1
1.1MySQL異步復制簡介 1
1.1.1復制的用途 1
1.1.2復制如何工作 2
1.1.3兩階段提交 6
1.2搭建實驗環境 8
1.2.1實驗環境說明 8
1.2.2安裝MySQL 8
1.3配置異步復制 12
1.3.1空庫 12
1.3.2脫機 16
1.3.3聯機 17
1.4小結 20
第2章半同步復制 21
2.1MySQL半同步復制簡介 21
2.2性能提升 22
2.2.1ACK異步化 22
2.2.2控制從庫反饋的數量 24
2.2.3二進制日志互斥鎖的改進 25
2.3數據一致性 26
2.3.1rpl_semi_sync_master_wait_point配置 26
2.3.2sync_binlog配置 28
2.3.3sync_relay_log配置 30
2.4管理接口 32
2.5配置半同步復制 32
2.5.1安裝插件 32
2.5.2啟用半同步復制 34
2.5.3監控半同步復制 35
2.6測試 37
2.6.1正常提交事務 37
2.6.2回滾事務 38
2.6.3rpl_semi_sync_master_wait_no_slave與從庫數量 40
2.7小結 44
第3章GTID與復制 45
3.1GTID簡介 45
3.1.1什么是GTID 45
3.1.2GTID的格式與存儲 46
3.2GTID生命周期 54
3.2.1典型事務的GTID生命周期 54
3.2.2GTID分配 57
3.2.3gtid_next系統變量 58
3.2.4gtid_purged系統變量 60
3.3GTID自動定位 68
3.4配置GTID復制 70
3.4.1聯機配置GTID復制 70
3.4.2聯機更改復制模式 74
3.4.3GTID相關系統變量 75
3.5GTID運維 76
3.5.1跳過一個事務 76
3.5.2mysqldump導出 77
3.5.3主從切換 78
3.6GTID限制 81
3.7GTID集合運算函數 84
3.7.1GTID內置函數 84
3.7.2用戶自定義函數 84
3.7.3使用示例 85
3.8小結 88
第4章復制拓撲結構與性能 89
4.1復制拓撲結構 89
4.1.1一主一(多)從 89
4.1.2雙(多)主復制 91
4.1.3多源復制 99
4.1.4Blackhole引擎與日志服務器 104
4.2復制性能 108
4.2.1測試規劃 108
4.2.2sync_binlog與innodb_flush_log_at_trx_commit 111
4.2.3組提交與多線程復制 111
4.2.4基于WriteSet的多線程復制 117
4.3小結 120
第5章延遲復制與部分復制 121
5.1延遲復制 121
5.1.1延遲復制簡介 121
5.1.2延遲復制時間戳 124
5.1.3監控延遲復制 125
5.2部分復制 125
5.2.1部分復制簡介 126
5.2.2評估庫級復制選項 126
5.2.3評估表級復制選項 129
5.2.4復制規則應用 134
5.2.5部分復制示例 136
5.3主從切換 139
5.3.1計劃內主從切換 139
5.3.2計劃外切換 140
5.4小結 148
第6章組復制 149
6.1組復制基本原理 149
6.1.1MySQL復制技術 149
6.1.2組復制使用場景 151
6.1.3組復制相關服務 151
6.1.4組復制插件體系結構 152
6.1.5組復制分布式恢復 153
6.2組復制安裝部署 156
6.2.1部署單主模式組復制 157
6.2.2組復制監控 165
6.2.3容錯示例 165
6.3組復制性能 172
6.3.1概述 172
6.3.2測試規劃 174
6.3.3消息壓縮 177
6.3.4組通信線程循環 178
6.3.5寫入集 178
6.3.6流控 179
6.3.7其他配置 181
6.3.8主從、半同步、組復制性能對比測試 183
6.4組復制要求與限制 185
6.4.1組復制要求 185
6.4.2組復制限制 187
6.5小結 188
第7章MySQLRouter 189
7.1MySQLRouter簡介 189
7.1.1透明路由 189
7.1.2元數據緩存 190
7.1.3簡單重定向 190
7.1.4部署與使用 191
7.1.5MySQLRouter8.0的新特性 192
7.2Router實現MySQL高可用示例 192
7.2.1安裝和配置 192
7.2.2自動故障轉移 199
7.2.3負載均衡 202
7.2.4讀寫分離 202
7.2.5多實例 202
7.3Router8安裝和配置 205
7.3.1安裝 205
7.3.2啟動 206
7.3.3配置 210
7.4小結 214
第8章MySQLFabric 215
8.1MySQLFabric簡介 215
8.1.1MySQLFabric的用途 215
8.1.2MySQLFabric架構 216
8.2高可用性 218
8.2.1概述 218
8.2.2安裝與配置 218
8.2.3HA功能測試 226
8.3數據分片 232
8.4MySQLFabric限制 233
8.5小結 234
第9章MMM 235
9.1MMM簡介 235
9.1.1基本功能 235
9.1.2工作原理 236
9.1.3典型用例 237
9.1.4切換流程 238
9.1.5系統需求 238
9.2實現MySQL主主復制的高可用 240
9.2.1基本環境 240
9.2.2安裝和配置 241
9.2.3功能測試 244
9.3小結 248
第10章MHA 249
10.1MHA簡介 249
10.1.1基本功能 249
10.1.2切換流程 250
10.1.3部署架構 250
10.1.4主要特點 251
10.1.5工具介紹 252
10.2安裝和配置 252
10.2.1配置主從復制 253
10.2.2安裝Perl依賴模塊 253
10.2.3配置SSH免密登錄 254
10.2.4安裝MHANode 254
10.2.5安裝MHAManager 255
10.2.6配置MHA 255
10.2.7創建相關腳本 257
10.2.8檢查MHA配置 265
10.3功能測試 267
10.3.1初始綁定VIP 267
10.3.2測試自動切換 267
10.3.3測試手工切換 271
10.3.4測試在線主從切換 273
10.3.5修復宕機的主庫 276
10.4小結 276
第11章Keepalived+LVS 277
11.1Keepalived簡介 277
11.1.1VRRP協議 277
11.1.2Keepalived架構設計 278
11.2LVS簡介 280
11.3實現MySQL主從復制中的讀寫分離及高可用 281
11.3.1架構設計 282
11.3.2安裝和配置 283
11.3.3功能測試 292
11.4實現MySQL雙主復制的讀寫負載均衡及高可用 295
11.4.1架構設計 295
11.4.2安裝和配置 296
11.4.3功能測試 301
11.5小結 304
第12章Heartbeat+HAProxy 305
12.1Heartbeat簡介 305
12.1.1Heartbeat組成模塊 305
12.1.2Heartbeat工作原理 307
12.2HAProxy簡介 308
12.3實現MySQL主從復制的讀寫分離及高可用 309
12.3.1架構設計 310
12.3.2安裝和配置 310
12.3.3功能測試 320
12.4實現MySQL雙主復制的讀寫負載均衡及高可用 323
12.4.1架構設計 323
12.4.2安裝和配置 324
12.4.3功能測試 326
12.5小結 329
第13章InnoDBCluster 330
13.1InnoDBCluster簡介 330
13.1.1整體架構 330
13.1.2MySQLShell 331
13.1.3MySQLRouter 333
13.1.4MySQL服務器集群 333
13.2創建InnoDBCluster 334
13.2.1檢查實例配置 335
13.2.2配置實例 337
13.2.3創建集群 339
13.2.4向集群添加實例 339
13.2.5查看集群狀態 341
13.2.6基于已有組復制創建集群 343
13.2.7配置MySQLRouter 343
13.2.8測試客戶端連接 346
13.2.9測試高可用性 347
13.3使用MySQLShell管理InnoDBCluster 349
13.3.1配置實例自動重新加入 349
13.3.2從InnoDBCluster中刪除實例 350
13.3.3重啟集群 351
13.3.4解散InnoDBCluster 352
13.3.5配置新主選舉權重 354
13.3.6配置故障轉移一致性 354
13.3.7更改組復制拓撲 355
13.3.8設置InnoDBCluster選項 356
13.4小結 357
第14章GaleraCluster 358
14.1基本原理 358
14.1.1同步復制 359
14.1.2Galera復制架構 361
14.1.3Galera工作原理 362
14.1.4狀態轉移 363
14.1.5流控 365
14.1.6單節點故障與恢復 367
14.1.7仲裁 367
14.2安裝和配置 371
14.2.1初始安裝 371
14.2.2使用SST增加節點 375
14.2.3使用IST增加節點 376
14.3管理監控 380
14.3.1在線DDL 380
14.3.2恢復主組件 382
14.3.3重置仲裁 385
14.3.4管理流控 386
14.3.5自動逐出 388
14.3.6啟用Galera仲裁員 389
14.3.7Galera集群監控 391
14.4性能測試 394
14.4.1測試規劃 394
14.4.2測試過程 397
14.5負載均衡 399
14.5.1安裝 399
14.5.2配置 400
14.5.3啟動 400
14.5.4測試 401
14.6小結 402
第15章DRBD 403
15.1DRBD簡介 403
15.1.1工作原理 403
15.1.2基本概念 404
15.2DRBD安裝和配置 405
15.2.1測試環境 405
15.2.2安裝前的準備工作 406
15.2.3下載安裝DRBD 407
15.2.4配置DRBD 407
15.3測試MySQL數據同步 411
15.4Heartbeat+DRBD+MySQL高可用方案 412
15.4.1配置 413
15.4.2測試 417
15.5小結 419
第16章優化案例 420
16.1快速生成數字輔助表 420
16.2將MySQL去重操作優化到極致 422
16.2.1問題描述 422
16.2.2巧用索引與變量 423
16.2.3利用窗口函數 431
16.2.4多線程并行 432
16.3重疊時間段問題之算法優化 441
16.3.1問題描述與分析 441
16.3.2優化重疊查詢 443
16.3.3改進取得活躍時段的算法 449
16.3.4MySQL8的單條查詢解決方案 456
16.4快速安全刪除MySQL大表 458
16.4.1表刪除過程 458
16.4.2創建硬鏈接 459
16.4.3刪除表 460
16.4.4刪除文件釋放空間 460
16.5小結 461
序: