文件首頁
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.7.2 線上新增 NDB Cluster 資料節點:基本程序

在本節中,我們列出將新資料節點新增至 NDB Cluster 所需的基本步驟。此程序適用於您是否使用 ndbdndbmtd 二進位檔來處理資料節點程序。如需更詳細的範例,請參閱 第 25.6.7.3 節,〈線上新增 NDB Cluster 資料節點:詳細範例〉

假設您已有一個正在執行的 NDB Cluster,線上新增資料節點需要以下步驟

  1. 編輯叢集組態 config.ini 檔案,新增與要新增的節點相對應的新 [ndbd] 區段。如果叢集使用多個管理伺服器,則這些變更需要對管理伺服器使用的所有 config.ini 檔案進行。

    您必須小心 config.ini 檔案中新增的任何新資料節點的節點 ID,不要與現有節點使用的節點 ID 重疊。如果您有使用動態分配節點 ID 的 API 節點,而這些 ID 與您要用於新資料節點的節點 ID 相符,則可以強制任何此類 API 節點「遷移」,如本程序稍後所述。

  2. 對所有 NDB Cluster 管理伺服器執行滾動重新啟動。

    重要事項

    所有管理伺服器都必須使用 --reload--initial 選項重新啟動,以強制讀取新組態。

  3. 對所有現有的 NDB Cluster 資料節點執行滾動重新啟動。重新啟動現有的資料節點時,不需要 (或通常甚至不希望) 使用 --initial

    如果您使用具有與您希望指派給新資料節點的任何節點 ID 相符的動態分配 ID 的 API 節點,您必須在本步驟中重新啟動任何資料節點程序之前,重新啟動所有 API 節點 (包括 SQL 節點)。這會導致任何具有先前未明確指派的節點 ID 的 API 節點放棄這些節點 ID 並取得新的節點 ID。

  4. 對連接到 NDB Cluster 的任何 SQL 或 API 節點執行滾動重新啟動。

  5. 啟動新的資料節點。

    新的資料節點可以任何順序啟動。它們也可以同時啟動,只要它們是在所有現有資料節點的滾動重新啟動完成之後,且在繼續進行下一步驟之前啟動即可。

  6. 在 NDB Cluster 管理用戶端中執行一或多個 CREATE NODEGROUP 命令,以建立新的節點群組或新的資料節點所屬的節點群組。

  7. 在所有資料節點之間重新分配叢集的資料,包括新的資料節點。通常,這是透過在 mysql 用戶端中,針對每個 NDBCLUSTER 表格發出 ALTER TABLE ... ALGORITHM=INPLACE, REORGANIZE PARTITION 陳述式來完成的。

    例外狀況:對於使用 MAX_ROWS 選項建立的表格,此陳述式無效;請改用 ALTER TABLE ... ALGORITHM=INPLACE MAX_ROWS=... 來重新組織這類表格。您也應該記住,使用 MAX_ROWS 以這種方式設定分割區的數量已過時,您應該改用 PARTITION_BALANCE;如需更多資訊,請參閱 第 15.1.20.12 節,〈設定 NDB 註解選項〉

    注意

    這僅需要針對新增新節點群組時已存在的表格進行。在新節點群組新增之後建立的表格中的資料會自動分配;但是,新增至任何在新增新節點之前存在的給定表格 tbl 的資料,在重新組織該表格之前不會使用新節點分配。

  8. ALTER TABLE ... REORGANIZE PARTITION ALGORITHM=INPLACE 會重新組織分割區,但不會回收 節點上釋放的空間。您可以透過在 mysql 用戶端中,針對每個 NDBCLUSTER 表格發出 OPTIMIZE TABLE 陳述式來完成此操作。

    這適用於記憶體 NDB 表格的可變寬度欄位所使用的空間。OPTIMIZE TABLE 不支援記憶體表格的固定寬度欄位;它也不支援磁碟資料表格。

您可以新增所有想要的節點,然後連續發出數個 CREATE NODEGROUP 命令,將新的節點群組新增至叢集。