文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  執行 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 可執行檔,從系統殼層重新啟動資料節點。(在大多數 Unix 系統上,也可以使用像是 kill 等的殼層命令來停止資料節點處理序,但是 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. 啟動單一 ndb_mgmd,並視需要使用 --reload--initial 或這兩個選項。

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

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

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

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