MySQL 9.0 參考手冊  /  InnoDB Cluster

第 23 章 InnoDB Cluster

本章介紹 MySQL InnoDB Cluster,它結合了 MySQL 技術,讓您能夠部署和管理完整的整合式 MySQL 高可用性解決方案。此內容是 InnoDB Cluster 的高階概述,如需完整文件,請參閱 MySQL InnoDB Cluster

重要

InnoDB Cluster 不支援 MySQL NDB Cluster。如需有關 MySQL NDB Cluster 的更多資訊,請參閱第 25 章,MySQL NDB Cluster 9.0第 25.2.6 節, “MySQL Server 使用 InnoDB 與 NDB Cluster 的比較”

InnoDB Cluster 由至少三個 MySQL 伺服器執行個體組成,並提供高可用性和擴充功能。InnoDB Cluster 使用下列 MySQL 技術

  • MySQL Shell,這是一個用於 MySQL 的進階用戶端和程式碼編輯器。

  • MySQL 伺服器和 群組複製,它讓一組 MySQL 執行個體能夠提供高可用性。InnoDB Cluster 提供另一種簡單易用的程式化方法來使用群組複製。

  • MySQL Router,這是一個輕量級中介軟體,可在您的應用程式與 InnoDB Cluster 之間提供透明路由。

下圖顯示這些技術如何協同運作的概述

圖 23.1 InnoDB Cluster 概觀

Three MySQL servers are grouped together as a high availability cluster. One of the servers is the read/write primary instance, and the other two are read-only secondary instances. Group Replication is used to replicate data from the primary instance to the secondary instances. MySQL Router connects client applications (in this example, a MySQL Connector) to the primary instance.

由於建立在 MySQL 群組複製之上,因此提供諸如自動成員資格管理、容錯、自動故障轉移等等功能。InnoDB Cluster 通常在單一主要模式下執行,具有一個主要執行個體(讀寫)和多個次要執行個體(唯讀)。進階使用者還可以利用多主要模式,其中所有執行個體都是主要執行個體。您甚至可以在 InnoDB Cluster 線上時變更叢集的拓撲,以確保最高可用性。

您可以使用 AdminAPI 來處理 InnoDB Cluster,AdminAPI 作為 MySQL Shell 的一部分提供。AdminAPI 提供 JavaScript 和 Python 版本,非常適合編寫指令碼和自動化 MySQL 部署,以實現高可用性和可擴充性。透過使用 MySQL Shell 的 AdminAPI,您可以避免手動配置多個執行個體。相反地,AdminAPI 提供了一個有效且現代的介面來處理多個 MySQL 執行個體,讓您能夠從一個中央工具佈建、管理和監控您的部署。

若要開始使用 InnoDB Cluster,您需要下載安裝 MySQL Shell。您需要一些已安裝 MySQL 伺服器執行個體的主機,您也可以安裝 MySQL Router。

InnoDB Cluster 支援 MySQL Clone,讓您能夠輕鬆佈建執行個體。過去,若要佈建新執行個體,然後再讓它加入一組 MySQL 執行個體,您必須以某種方式將交易手動傳輸到加入的執行個體。這可能涉及製作檔案副本、手動複製它們等等。使用 InnoDB Cluster,您只需將執行個體新增到叢集,它就會自動佈建。

同樣地,InnoDB Cluster 與 MySQL Router 緊密整合,您可以使用 AdminAPI 來處理它們。MySQL Router 可以根據 InnoDB Cluster 自動設定自身,此過程稱為引導,這消除了您手動設定路由的需求。然後,MySQL Router 會以透明的方式將用戶端應用程式連線到 InnoDB Cluster,為用戶端連線提供路由和負載平衡。此整合還讓您能夠使用 AdminAPI 管理針對 InnoDB Cluster 引導的 MySQL Router 的某些層面。InnoDB Cluster 狀態資訊包含針對叢集引導的 MySQL Router 的詳細資料。作業可讓您在叢集層級建立 MySQL Router 使用者,以處理針對叢集引導的 MySQL Router 等等。

如需有關這些技術的更多資訊,請參閱說明中連結的使用者文件。除了此使用者文件之外,MySQL Shell JavaScript API 參考或 MySQL Shell Python API 參考中提供了所有 AdminAPI 方法的開發人員文件,可從 連接器與 API 取得。