文件首頁
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 叢集資料節點:基本程序

25.6.7.2 線上新增 NDB 叢集資料節點:基本程序

在本節中,我們列出將新資料節點新增至 NDB 叢集所需的基本步驟。無論您是使用 ndbdndbmtd 二進位檔作為資料節點程序,此程序都適用。如需更詳細的範例,請參閱第 25.6.7.3 節「線上新增 NDB 叢集資料節點:詳細範例」

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

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

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

  2. 對所有 NDB 叢集管理伺服器執行循環重新啟動。

    重要事項

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

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

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

  4. 對連線至 NDB 叢集的任何 SQL 或 API 節點執行循環重新啟動。

  5. 啟動新的資料節點。

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

  6. 在 NDB 叢集管理用戶端中執行一個或多個 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 命令,將新的節點群組新增至叢集。