MySQL 8.4 參考手冊  /  InnoDB 叢集

第 23 章 InnoDB 叢集

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

重要事項

InnoDB 叢集不支援 MySQL NDB 叢集。有關 MySQL NDB 叢集的詳細資訊,請參閱第 25 章,MySQL NDB 叢集 8.4第 25.2.6 節,“使用 InnoDB 的 MySQL 伺服器與 NDB 叢集比較”

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

  • MySQL Shell,它是 MySQL 的進階用戶端和程式碼編輯器。

  • MySQL 伺服器和群組複製,使一組 MySQL 執行個體能夠提供高可用性。InnoDB 叢集提供一種替代的、易於使用的程式化方式來使用群組複製。

  • MySQL Router,一個輕量級的中介軟體,在您的應用程式和 InnoDB 叢集之間提供透明路由。

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

圖 23.1 InnoDB 叢集概述

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 叢集通常以單一主節點模式執行,具有一個主要執行個體(讀寫)和多個次要執行個體(唯讀)。進階使用者也可以利用多主節點模式,其中所有執行個體都是主要節點。您甚至可以在 InnoDB 叢集在線時變更叢集的拓撲,以確保最高可用性。

您可以使用 AdminAPI(作為 MySQL Shell 的一部分提供)來使用 InnoDB 叢集。AdminAPI 可以使用 JavaScript 和 Python,並且非常適合 MySQL 部署的指令碼編寫和自動化,以實現高可用性和擴展性。通過使用 MySQL Shell 的 AdminAPI,您可以避免手動配置許多執行個體的需求。相反,AdminAPI 提供一個有效的現代介面來連接 MySQL 執行個體集,並使您能夠從一個中央工具佈建、管理和監視您的部署。

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

InnoDB 叢集支援MySQL Clone,讓您可以簡單地佈建執行個體。在過去,若要在新執行個體加入一組 MySQL 執行個體之前佈建新執行個體,您需要以某種方式手動將交易傳輸到加入的執行個體。這可能涉及建立檔案副本、手動複製它們等。使用 InnoDB 叢集,您可以簡單地將執行個體新增至叢集,並且會自動佈建它。

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

如需有關這些技術的詳細資訊,請參閱描述中連結的使用者文件。除了此使用者文件之外,在 MySQL Shell JavaScript API 參考或 MySQL Shell Python API 參考中,還有適用於所有 AdminAPI 方法的開發人員文件,可從連接器和 API取得。