MySQL 高可用解決方案 — 從主從復制到 InnoDB Cluster 架構

徐軼韜

  • 出版商: 電子工業
  • 出版日期: 2022-09-01
  • 售價: $774
  • 貴賓價: 9.5$735
  • 語言: 簡體中文
  • 頁數: 476
  • ISBN: 7121441411
  • ISBN-13: 9787121441417
  • 相關分類: MySQLSQL
  • 立即出貨

買這商品的人也買了...

商品描述

本書對MySQL官方提供的高可用解決方案逐一進行介紹,詳細闡述每種方案的原理、架構、優缺點及適用場景,並配合演示說明,幫助讀者快速理解相關內容。與其他MySQL高可用相關圖書不同,本書專註於MySQL官方團隊提供的解決方案,包括MySQL主從復制、MySQL ReplicaSet、組復制、InnoDB Cluster及InnoDB ClusterSet等相關內容。此外,本書還介紹了MySQL 8.0的部分內容,包括文檔存儲、MySQL Shell及MySQL Router等。附錄部分介紹了企業版監控、企業版備份等MySQL官方工具,以及克隆插件和虛擬機環境VirtualBox,使讀者可以更加全面地瞭解MySQL的生態和工具。通過本書,MySQL數據庫開發人員、MySQL數據庫管理人員和架構師可以瞭解MySQL當前全部的產品特性和高可用解決方案,獲知每種方案的詳細內容,並能夠將高可用解決方案靈活運用到實際的生產解決方案中。本書面向的讀者對象包括MySQL的初學者、數據庫架構師、DBA、相關軟件開發人員,以及組織內部的IT負責人。

作者簡介

徐軼韜
甲骨文公司MySQL解決方案首席工程師。為中國金融、政府、航空運輸等行業的MySQL用戶提供相關產品的售前諮詢、企業級產品介紹、解決方案服務,以及推廣和普及MySQL數據庫在社區的使用。公眾號“MySQL解決方案工程師”的運營者和內容作者。“3306π”開源軟件社區活動出品人,“墨天輪”社區2020年度十大突出貢獻人物。

目錄大綱

第1章高可用介紹 1
1.1 高可用的概念 1
1.1.1 可靠性 3
1.1.2 恢復 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高可用的實現 8
1.2.3 MySQL高可用帶來的挑戰 9

第2章MySQL高可用的演進 10
2.1 主從復制 11
2.1.1 主從復制的優點 11
2.1.2 主從復制的缺點 12
2.1.3 主從復制的方法概述 12
2.1.4 主從復制的類型概述 13
2.1.5 主從復制適用的高可用要求 13
2.2 組複製 14
2.2.1 組複製實現的理論 14
2.2.2 組複製的優點 15
2.2.3 組複製的要求 16
2.2.4 組複製的缺點和限制 17
2.2.5 組複製滿足的高可用要求 17
2.3 InnoDB Cluster 18
2.3.1 InnoDB Cluster的構成 19
2.3.2 InnoDB Cluster的要求和限制 19
2.3.3 InnoDB Cluster滿足的高可用要求 20
2.4 InnoDB ReplicaSet 20
2.4.1 InnoDB ReplicaSet的構成 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的架構 26
2.6.2 NDB Cluster的數據節點和高可用性 27
2.6.3 NDB Cluster適用的場景和要求 28

第3章主從復制與InnoDB ReplicaSet 30
3.1 主從復制與InnoDB ReplicaSet入門 31
3.1.1 主從復制的原理 31
3.1.2 主從復制的類型 32
3.1.3 主從復制的應用場景 35
3.1.4 InnoDB ReplicaSet的基礎知識 37
3.2 主從復制功能的演示 38
3.2.1 配置主從復制的步驟 38
3.2.2 使用GTID進行複制 57
3.2.3 配置半同步複製 63
3.3 InnoDB ReplicaSet演示 67
3.3.1 直接配置InnoDB ReplicaSet 71
3.3.2 採用現有的複製配置InnoDB ReplicaSet 80
3.3.3 InnoDB ReplicaSet與MySQL Router 83
3.3.4 使用InnoDB ReplicaSet 88

第4章組複製 92
4.1 什麼是組複製 92
4.1.1 概念和術語 93
4.1.2 組複製使用的技術 95
4.1.3 組複製的架構及功能 95
4.1.4 組複製的特徵及使用場景 98
4.2 組複製的模式 99
4.2.1 單主模式 99
4.2.2 多主模式 101
4.3 組複製的通信系統與成員管理 104
4.3.1 組複製的通信過程 104
4.3.2 組複製達成一致及認證的過程 105
4.3.3 事務的整體順序傳遞 107
4.3.4 組成員關係管理 108
4.4 組複製的監控與管理 109
4.4.1 故障檢測機制 109
4.4.2 組複製監控 111
4.4.3 改變組複製模式 119
4.5 組複製的事務一致性 124
4.5.1 組複製的一致性相關事件 124
4.5.2 一致性級別的影響 126
4.6 組複製的分佈式恢復 130
4.6.1 組複製的分佈式恢復過程 130
4.6.2 組複製的分佈式恢復方法 131
4.7 組複製的搭建及操作演示 132
4.7.1 組複製的要求 132
4.7.2 本地搭建組複製 134
4.7.3 組複製的操作 143
4.7.4 組複製的安全性 156
4.7.5 組複製的升級 162
4.8 組複製的優化 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 故障檢測和網絡分區的響應 177
4.9 組複製的限制 183
4.9.1 組複製的功能性限制 183
4.9.2 組複製的事務大小限制 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對數據庫進行操作 229
5.4.1 關係型數據庫基礎 230
5.4.2 使用MySQL的語句和函數 233
5.4.3 使用Python管理數據庫 248
5.5 在MySQL Shell中使用NoSQL對文檔存儲進行操作 261
5.5.1 MySQL中的JSON文檔 264
5.5.2 路徑表達式 269
5.5.3 JSON函數 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 在其他操作系統下安裝MySQL Router 289
6.3 部署與配置 289
6.3.1 基本連接路由 290
6.3.2 路由器演示 291
6.3.3 配置路由器 294
6.4 路由器應用程序 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 組複製 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 將組複製轉換為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管理與優化 348
9.1 集群的監視 348
9.1.1 使用Cluster.describe()方法監視集群 349
9.1.2 使用Cluster.status()方法檢查集群的狀態 350
9.1.3 監視恢復操作 357
9.1.4 查看InnoDB Cluster和組複製的通信協議 359
9.2 集群的使用 360
9.2.1 檢查實例配置 361
9.2.2 添加和刪除實例 362
9.2.3 解散集群 363
9.2.4 改變集群拓撲 364
9.3 集群配置 366
9.3.1 集群的配置選項 366
9.3.2 配置選舉過程 367
9.3.3 配置故障轉移一致性 367
9.3.4 配置實例自動重新加入 368
9.3.5 配置並行複制應用 369
9.3.6 集群的安全性 371
9.4 集群的升級 372
9.4.1 MySQL Router滾動升級 373
9.4.2 更新InnoDB Cluster的元數據 373
9.5 集群的故障排除 374
9.5.1 將實例重新加入集群 374
9.5.2 從丟失仲裁中恢復集群 375
9.5.3 在成員宕機後重新啟動集群 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的狀態與拓撲 394
10.3.1 InnoDB ClusterSet的狀態 394
10.3.2 InnoDB ClusterSet的拓撲 399
10.4 InnoDB ClusterSet與MySQL Router 401
10.4.1 ClusterSet使用路由器時的注意事項 401
10.4.2 ClusterSet使用路由器的配置步驟 401
10.5 InnoDB ClusterSet的主動切換與故障轉移 408
10.5.1 InnoDB ClusterSet執行主動切換的過程 408
10.5.2 InnoDB ClusterSet的故障轉移 415
10.6 InnoDB ClusterSet的要求與限制 423
10.6.1 InnoDB ClusterSet的要求 423
10.6.2 InnoDB ClusterSet的限制 424

第11章MySQL的相關軟件與工具 425
11.1 MySQL產品的生命週期 425
11.2 MySQL的高級功能 427
11.2.1 企業版備份 427
11.2.2 企業版監控 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 克隆數據 453
11.4.3 複製使用克隆插件 454
11.5 關於VirtualBox 457
後記 462