文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  執行 NDB Cluster 的滾動重新啟動

25.6.5 執行 NDB Cluster 的滾動重新啟動

本節討論如何執行 NDB Cluster 安裝的滾動重新啟動,之所以這麼稱呼是因為它涉及依序停止和啟動(或重新啟動)每個節點,以便叢集本身保持運作。這通常是滾動升級滾動降級的一部分,其中叢集的高可用性是強制性的,並且不允許整個叢集停機。在我們提到升級的地方,這裡提供的資訊通常也適用於降級。

可能需要滾動重新啟動的原因有很多。這些將在接下來的幾段中描述。

組態變更。 若要變更叢集的組態,例如在叢集中新增 SQL 節點,或將組態參數設定為新值。

NDB Cluster 軟體升級或降級。 將叢集升級到較新版本的 NDB Cluster 軟體(或將其降級到較舊版本)。這通常稱為滾動升級(或滾動降級,當還原到較舊版本的 NDB Cluster 時)。

節點主機上的變更。 變更執行一個或多個 NDB Cluster 節點處理程序的硬體或作業系統。

系統重設(叢集重設)。 因為叢集已達到不希望的狀態而重設叢集。在這種情況下,通常希望重新載入一個或多個資料節點的資料和中繼資料。這可以透過以下三種方式中的任何一種來完成

資源復原。 若要釋放先前由連續的 INSERTDELETE 操作配置給資料表的記憶體,以供其他 NDB Cluster 資料表重複使用。

執行滾動重新啟動的程序可以概括如下

  1. 停止所有叢集管理節點 (ndb_mgmd 處理程序),重新組態它們,然後重新啟動它們。(請參閱 使用多個管理伺服器進行滾動重新啟動。)

  2. 依序停止、重新組態,然後重新啟動每個叢集資料節點 (ndbd 處理程序)。

    在執行上一個步驟之後,透過針對 ndb_mgm 用戶端中的每個資料節點發出 RESTART,可以更新某些節點組態參數。其他參數要求使用管理用戶端 STOP 命令完全停止資料節點,然後透過叫用適當的 ndbdndbmtd 可執行檔,從系統 Shell 再次啟動資料節點。(在大多數 Unix 系統上,也可以使用 kill 等 Shell 命令來停止資料節點處理程序,但建議使用 STOP 命令,且通常更簡單。)

    注意

    在 Windows 上,您也可以使用 SC STOPSC START 命令、NET STOPNET START 命令,或 Windows 服務管理員來停止和啟動已安裝為 Windows 服務的節點(請參閱 第 25.3.2.4 節,〈將 NDB Cluster 處理程序安裝為 Windows 服務〉)。

    每個節點組態參數的文件中都說明了所需的重新啟動類型。請參閱 第 25.4.3 節,〈NDB Cluster 組態檔案〉

  3. 依序停止、重新組態,然後重新啟動每個叢集 SQL 節點 (mysqld 處理程序)。

NDB Cluster 支援相對彈性的節點升級順序。當升級 NDB Cluster 時,您可以在升級管理節點、資料節點或兩者之前,升級 API 節點(包括 SQL 節點)。換句話說,您可以在任何順序下升級 API 和 SQL 節點。這受以下規定的約束

  • 此功能僅適用於線上升級的一部分。來自不同 NDB Cluster 版本的節點二進制檔組合既不適用,也不支援在生產環境中持續、長期使用。

  • 您必須先升級相同類型(管理、資料或 API 節點)的所有節點,然後才能升級不同類型的任何節點。無論升級節點的順序為何,此狀況均維持不變。

  • 您必須先升級所有管理節點,然後才能升級任何資料節點。無論您升級叢集 API 和 SQL 節點的順序為何,此狀況均維持不變。

  • 在升級所有管理節點和資料節點之前,不得使用 版本特有的功能。

    這也適用於可能套用的任何 MySQL 伺服器版本變更,除了 NDB 引擎版本變更之外,因此在規劃升級時,請務必將此納入考量。(這對於 NDB Cluster 的線上升級通常適用。)

在節點重新啟動期間,任何 API 節點都無法執行結構描述操作(例如資料定義陳述式)。部分由於此限制,在線上升級或降級期間也不支援結構描述操作。此外,在升級或降級正在進行時,無法執行原生備份。

使用多個管理伺服器進行滾動重新啟動。 在執行具有多個管理節點的 NDB Cluster 的滾動重新啟動時,您應該記住,ndb_mgmd 會檢查是否有任何其他管理節點正在執行,如果有的話,則嘗試使用該節點的組態資料。為了防止這種情況發生,並強制 ndb_mgmd 重新讀取其組態檔案,請執行下列步驟

  1. 停止所有 NDB Cluster ndb_mgmd 處理程序。

  2. 更新所有 config.ini 檔案。

  3. 使用 --reload--initial 或這兩個選項(如所需)啟動單一 ndb_mgmd

  4. 如果您使用 --initial 選項啟動第一個 ndb_mgmd,您也必須使用 --initial 啟動任何剩餘的 ndb_mgmd 處理程序。

    無論在啟動第一個 ndb_mgmd 時使用了任何其他選項,您都不應在使用 --reload 之後啟動任何剩餘的 ndb_mgmd 程序。

  5. 按照正常方式完成資料節點和 API 節點的滾動重新啟動。

在執行滾動重新啟動以更新叢集配置時,您可以使用 ndbinfo.nodes 表格的 config_generation 欄位來追蹤哪些資料節點已成功使用新配置重新啟動。請參閱 第 25.6.17.48 節,「ndbinfo nodes 表格」