MySQL高可用解決方案——從主從復(fù)制到InnoDB Cluster架構(gòu)
定 價:129 元
- 作者:徐軼韜
- 出版時間:2022/9/1
- ISBN:9787121441417
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.132.3
- 頁碼:476
- 紙張:
- 版次:01
- 開本:16開
本書對MySQL官方提供的高可用解決方案逐一進(jìn)行介紹,詳細(xì)闡述每種方案的原理、架構(gòu)、優(yōu)缺點(diǎn)及適用場景,并配合演示說明,幫助讀者快速理解相關(guān)內(nèi)容。與其他MySQL高可用相關(guān)圖書不同,本書專注于MySQL官方團(tuán)隊提供的解決方案,包括MySQL主從復(fù)制、MySQL ReplicaSet、組復(fù)制、InnoDB Cluster及InnoDB ClusterSet等相關(guān)內(nèi)容。此外,本書還介紹了MySQL 8.0的部分內(nèi)容,包括文檔存儲、MySQL Shell及MySQL Router等。附錄部分介紹了企業(yè)版監(jiān)控、企業(yè)版?zhèn)浞莸萂ySQL官方工具,以及克隆插件和虛擬機(jī)環(huán)境VirtualBox,使讀者可以更加全面地了解MySQL的生態(tài)和工具。通過本書,MySQL數(shù)據(jù)庫開發(fā)人員、MySQL數(shù)據(jù)庫管理人員和架構(gòu)師可以了解MySQL當(dāng)前全部的產(chǎn)品特性和高可用解決方案,獲知每種方案的詳細(xì)內(nèi)容,并能夠?qū)⒏呖捎媒鉀Q方案靈活運(yùn)用到實(shí)際的生產(chǎn)解決方案中。本書面向的讀者對象包括MySQL的初學(xué)者、數(shù)據(jù)庫架構(gòu)師、DBA、相關(guān)軟件開發(fā)人員,以及組織內(nèi)部的IT負(fù)責(zé)人。
徐軼韜,甲骨文公司MySQL解決方案首席工程師。為中國金融、政府、航空運(yùn)輸?shù)刃袠I(yè)的MySQL用戶提供相關(guān)產(chǎn)品的售前咨詢、企業(yè)級產(chǎn)品介紹、解決方案服務(wù),以及推廣和普及MySQL數(shù)據(jù)庫在社區(qū)的使用。公眾號“MySQL解決方案工程師”的運(yùn)營者和內(nèi)容作者!3306π”開源軟件社區(qū)活動出品人,“墨天輪”社區(qū)2020年度十大突出貢獻(xiàn)人物。
目 錄
第1章 高可用介紹 1
1.1 高可用的概念 1
1.1.1 可靠性 3
1.1.2 恢復(fù) 4
1.1.3 冗余 5
1.1.4 容錯 5
1.1.5 可伸縮性 6
1.2 MySQL高可用 7
1.2.1 MySQL高可用選項 7
1.2.2 MySQL高可用的實(shí)現(xiàn) 8
1.2.3 MySQL高可用帶來的挑戰(zhàn) 9
第2章 MySQL高可用的演進(jìn) 10
2.1 主從復(fù)制 11
2.1.1 主從復(fù)制的優(yōu)點(diǎn) 11
2.1.2 主從復(fù)制的缺點(diǎn) 12
2.1.3 主從復(fù)制的方法概述 12
2.1.4 主從復(fù)制的類型概述 13
2.1.5 主從復(fù)制適用的高可用要求 13
2.2 組復(fù)制 14
2.2.1 組復(fù)制實(shí)現(xiàn)的理論 14
2.2.2 組復(fù)制的優(yōu)點(diǎn) 15
2.2.3 組復(fù)制的要求 16
2.2.4 組復(fù)制的缺點(diǎn)和限制 17
2.2.5 組復(fù)制滿足的高可用要求 17
2.3 InnoDB Cluster 18
2.3.1 InnoDB Cluster的構(gòu)成 19
2.3.2 InnoDB Cluster的要求和限制 19
2.3.3 InnoDB Cluster滿足的高可用要求 20
2.4 InnoDB ReplicaSet 20
2.4.1 InnoDB ReplicaSet的構(gòu)成 21
2.4.2 InnoDB ReplicaSet的使用限制 22
2.4.3 InnoDB ReplicaSet滿足的高可用要求 23
2.5 InnoDB ClusterSet 23
2.5.1 InnoDB ClusterSet的要求和限制 24
2.5.2 InnoDB ClusterSet滿足的高可用要求 25
2.6 NDB Cluster 25
2.6.1 NDB Cluster的架構(gòu) 26
2.6.2 NDB Cluster的數(shù)據(jù)節(jié)點(diǎn)和高可用性 27
2.6.3 NDB Cluster適用的場景和要求 28
第3章 主從復(fù)制與InnoDB ReplicaSet 30
3.1 主從復(fù)制與InnoDB ReplicaSet入門 31
3.1.1 主從復(fù)制的原理 31
3.1.2 主從復(fù)制的類型 32
3.1.3 主從復(fù)制的應(yīng)用場景 35
3.1.4 InnoDB ReplicaSet的基礎(chǔ)知識 37
3.2 主從復(fù)制功能的演示 38
3.2.1 配置主從復(fù)制的步驟 38
3.2.2 使用GTID進(jìn)行復(fù)制 57
3.2.3 配置半同步復(fù)制 63
?
3.3 InnoDB ReplicaSet演示 67
3.3.1 直接配置InnoDB ReplicaSet 71
3.3.2 采用現(xiàn)有的復(fù)制配置InnoDB ReplicaSet 80
3.3.3 InnoDB ReplicaSet與MySQL Router 83
3.3.4 使用InnoDB ReplicaSet 88
第4章 組復(fù)制 92
4.1 什么是組復(fù)制 92
4.1.1 概念和術(shù)語 93
4.1.2 組復(fù)制使用的技術(shù) 95
4.1.3 組復(fù)制的架構(gòu)及功能 95
4.1.4 組復(fù)制的特征及使用場景 98
4.2 組復(fù)制的模式 99
4.2.1 單主模式 99
4.2.2 多主模式 101
4.3 組復(fù)制的通信系統(tǒng)與成員管理 104
4.3.1 組復(fù)制的通信過程 104
4.3.2 組復(fù)制達(dá)成一致及認(rèn)證的過程 105
4.3.3 事務(wù)的整體順序傳遞 107
4.3.4 組成員關(guān)系管理 108
4.4 組復(fù)制的監(jiān)控與管理 109
4.4.1 故障檢測機(jī)制 109
4.4.2 組復(fù)制監(jiān)控 111
4.4.3 改變組復(fù)制模式 119
4.5 組復(fù)制的事務(wù)一致性 124
4.5.1 組復(fù)制的一致性相關(guān)事件 124
4.5.2 一致性級別的影響 126
4.6 組復(fù)制的分布式恢復(fù) 130
4.6.1 組復(fù)制的分布式恢復(fù)過程 130
4.6.2 組復(fù)制的分布式恢復(fù)方法 131
4.7 組復(fù)制的搭建及操作演示 132
4.7.1 組復(fù)制的要求 132
4.7.2 本地搭建組復(fù)制 134
4.7.3 組復(fù)制的操作 143
4.7.4 組復(fù)制的安全性 156
4.7.5 組復(fù)制的升級 162
4.8 組復(fù)制的優(yōu)化 169
4.8.1 組通信線程(GCT) 169
4.8.2 消息壓縮 170
4.8.3 流量控制 171
4.8.4 消息片段化 174
4.8.5 通信引擎緩存管理 175
4.8.6 故障檢測和網(wǎng)絡(luò)分區(qū)的響應(yīng) 177
4.9 組復(fù)制的限制 183
4.9.1 組復(fù)制的功能性限制 183
4.9.2 組復(fù)制的事務(wù)大小限制 185
第5章 MySQL Shell 187
5.1 MySQL Shell概述 187
5.1.1 MySQL Shell的特性 188
5.1.2 MySQL 8.0的新特性 190
5.2 MySQL Shell的安裝方法 194
5.2.1 安裝MySQL Shell 194
5.2.2 在macOS上安裝MySQL Shell 196
5.2.3 在Linux上安裝MySQL Shell 199
5.3 如何使用MySQL Shell 199
5.3.1 MySQL Shell的命令與選項 200
5.3.2 MySQL Shell入門 204
5.3.3 使用MySQL Shell 210
5.4 在MySQL Shell中使用SQL對數(shù)據(jù)庫進(jìn)行操作 229
5.4.1 關(guān)系型數(shù)據(jù)庫基礎(chǔ) 230
5.4.2 使用MySQL的語句和函數(shù) 233
5.4.3 使用Python管理數(shù)據(jù)庫 248
5.5 在MySQL Shell中使用NoSQL對文檔存儲進(jìn)行操作 261
5.5.1 MySQL中的JSON文檔 264
5.5.2 路徑表達(dá)式 269
5.5.3 JSON函數(shù) 273
第6章 MySQL Router 283
6.1 MySQL Router概述 284
6.2 MySQL Router的安裝 285
6.2.1 Windows下的MySQL Installer 286
6.2.2 在其他操作系統(tǒng)下安裝MySQL Router 289
6.3 部署與配置 289
6.3.1 基本連接路由 290
6.3.2 路由器演示 291
6.3.3 配置路由器 294
6.4 路由器應(yīng)用程序 301
6.4.1 啟動路由器 302
6.4.2 使用路由器日志 302
第7章 InnoDB Cluster 304
7.1 InnoDB Cluster概述 304
7.2 ACID特性 305
7.3 組件 308
7.3.1 組復(fù)制 308
7.3.2 MySQL Shell 309
7.3.3 X DevAPI 310
7.3.4 AdminAPI 310
7.3.5 MySQL Router 311
7.4 安裝InnoDB Cluster 311
7.4.1 在Windows上安裝MySQL 313
7.4.2 利用Sandbox部署InnoDB Cluster 319
第8章 使用AdminAPI部署InnoDB Cluster 325
8.1 dba類 326
8.2 cluster類 329
8.3 InnoDB Cluster部署演示 330
8.3.1 部署全新的InnoDB Cluster 331
8.3.2 將組復(fù)制轉(zhuǎn)換為InnoDB Cluster 338
8.4 InnoDB Cluster與MySQL Router 343
8.4.1 配置MySQL Router 343
8.4.2 AdminAPI與MySQL Router 346
第9章 InnoDB Cluster管理與優(yōu)化 348
9.1 集群的監(jiān)視 348
9.1.1 使用Cluster.describe()方法監(jiān)視集群 349
9.1.2 使用Cluster.status()方法檢查集群的狀態(tài) 350
9.1.3 監(jiān)視恢復(fù)操作 357
9.1.4 查看InnoDB Cluster和組復(fù)制的通信協(xié)議 359
9.2 集群的使用 360
9.2.1 檢查實(shí)例配置 361
9.2.2 添加和刪除實(shí)例 362
9.2.3 解散集群 363
9.2.4 改變集群拓?fù)?364
9.3 集群配置 366
9.3.1 集群的配置選項 366
9.3.2 配置選舉過程 367
9.3.3 配置故障轉(zhuǎn)移一致性 367
9.3.4 配置實(shí)例自動重新加入 368
9.3.5 配置并行復(fù)制應(yīng)用 369
9.3.6 集群的安全性 371
9.4 集群的升級 372
9.4.1 MySQL Router滾動升級 373
9.4.2 更新InnoDB Cluster的元數(shù)據(jù) 373
9.5 集群的故障排除 374
9.5.1 將實(shí)例重新加入集群 374
9.5.2 從丟失仲裁中恢復(fù)集群 375
9.5.3 在成員宕機(jī)后重新啟動集群 376
9.5.4 重新掃描集群 377
9.6 使用集群的限制與技巧 378
9.6.1 使用集群的限制 378
9.6.2 使用集群的技巧 379
第10章 InnoDB ClusterSet 382
10.1 InnoDB ClusterSet概述 382
10.2 部署InnoDB ClusterSet 384
10.3 InnoDB ClusterSet的狀態(tài)與拓?fù)?394
10.3.1 InnoDB ClusterSet的狀態(tài) 394
10.3.2 InnoDB ClusterSet的拓?fù)?399
10.4 InnoDB ClusterSet與MySQL Router 401
10.4.1 ClusterSet使用路由器時的注意事項 401
10.4.2 ClusterSet使用路由器的配置步驟 401
10.5 InnoDB ClusterSet的主動切換與故障轉(zhuǎn)移 408
10.5.1 InnoDB ClusterSet執(zhí)行主動切換的過程 408
10.5.2 InnoDB ClusterSet的故障轉(zhuǎn)移 415
10.6 InnoDB ClusterSet的要求與限制 423
10.6.1 InnoDB ClusterSet的要求 423
10.6.2 InnoDB ClusterSet的限制 424
第11章 MySQL的相關(guān)軟件與工具 425
11.1 MySQL產(chǎn)品的生命周期 425
11.2 MySQL的高級功能 427
11.2.1 企業(yè)版?zhèn)浞?427
11.2.2 企業(yè)版監(jiān)控 432
11.2.3 MySQL TDE (Transparent Data Encryption) 437
11.3 MySQL Workbench 446
11.3.1 MySQL Workbench的下載 446
11.3.2 MySQL Workbench的功能及使用 447
11.4 MySQL的克隆插件 451
11.4.1 安裝克隆插件 452
11.4.2 克隆數(shù)據(jù) 453
11.4.3 復(fù)制使用克隆插件 454
11.5 關(guān)于VirtualBox 457
后記 462