文件首頁
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.7.1 線上新增 NDB Cluster 資料節點:一般問題

本節提供關於線上新增 NDB Cluster 節點的行為和目前限制的一般資訊。

資料重新分配。線上新增節點的功能包含一種重新組織 NDBCLUSTER 資料表資料和索引的方法,以便透過 ALTER TABLE ... REORGANIZE PARTITION 陳述式,將它們分散到所有資料節點,包括新的節點。支援記憶體內和磁碟資料表的資料表重新組織。此重新分配目前不包含唯一索引(僅重新分配已排序的索引)。

對於在新增新的資料節點之前就已存在的 NDBCLUSTER 資料表的重新分配不是自動的,但可以使用 mysql 或其他 MySQL 用戶端應用程式中的簡單 SQL 陳述式來完成。但是,在新增新的節點群組後建立的資料表新增的所有資料和索引,都會自動分散到所有叢集資料節點,包括作為新節點群組一部分新增的節點。

部分啟動。可以新增新的節點群組,而無需啟動所有新的資料節點。也可以將新的節點群組新增到降級的叢集,也就是僅部分啟動或一個或多個資料節點未執行的叢集。在後一種情況下,叢集必須有足夠的節點在執行才能運作,然後才能新增新的節點群組。

對進行中操作的影響。使用 NDB Cluster 資料的正常 DML 操作不會因建立或新增新的節點群組或資料表重新組織而受阻。但是,無法在資料表重新組織時同時執行 DDL,也就是說,在執行 ALTER TABLE ... REORGANIZE PARTITION 陳述式時,無法發出其他 DDL 陳述式。此外,在執行 ALTER TABLE ... REORGANIZE PARTITION(或執行任何其他 DDL 陳述式)期間,無法重新啟動叢集資料節點。

故障處理。在節點群組建立和資料表重新組織期間,資料節點的故障處理方式如下表所示

表 25.38 節點群組建立和資料表重新組織期間的資料節點故障處理

故障發生時 資料節點中的故障 資料節點中的故障 系統故障
節點群組建立
  • 如果主節點以外的節點故障:節點群組的建立始終向前滾動。

  • 如果主節點故障:

    • 如果已達到內部提交點:節點群組的建立向前滾動。

    • 如果尚未達到內部提交點:節點群組的建立會回滾

  • 如果主節點以外的節點故障:節點群組的建立始終向前滾動。

  • 如果主節點故障:

    • 如果已達到內部提交點:節點群組的建立向前滾動。

    • 如果尚未達到內部提交點:節點群組的建立會回滾

  • 如果 CREATE NODEGROUP 的執行已達到內部提交點:重新啟動時,叢集會包含新的節點群組。否則就不會包含。

  • 如果 CREATE NODEGROUP 的執行尚未達到內部提交點:重新啟動時,叢集不會包含新的節點群組。

資料表重新組織
  • 如果主節點以外的節點故障:資料表重新組織始終向前滾動。

  • 如果主節點故障:

    • 如果已達到內部提交點:資料表重新組織會向前滾動。

    • 如果尚未達到內部提交點:資料表重新組織會回滾。

  • 如果主節點以外的節點故障:資料表重新組織始終向前滾動。

  • 如果主節點故障:

    • 如果已達到內部提交點:資料表重新組織會向前滾動。

    • 如果尚未達到內部提交點:資料表重新組織會回滾。

  • 如果 ALTER TABLE ... REORGANIZE PARTITION 陳述式的執行已達到內部提交點:重新啟動叢集時,屬於 table 的資料和索引會使用資料節點進行分配。

  • 如果 ALTER TABLE ... REORGANIZE PARTITION 陳述式的執行尚未達到內部提交點:重新啟動叢集時,屬於 table 的資料和索引只會使用資料節點進行分配。


捨棄節點群組。ndb_mgm 用戶端支援 DROP NODEGROUP 命令,但僅當節點群組中沒有任何資料節點包含任何資料時,才能捨棄節點群組。由於目前沒有方法可以清空特定的資料節點或節點群組,此命令僅在以下兩種情況下有效

  1. ndb_mgm 用戶端中發出 CREATE NODEGROUP 後,但在 mysql 用戶端中發出任何 ALTER TABLE ... REORGANIZE PARTITION 陳述式之前。

  2. 在使用 DROP TABLE 捨棄所有 NDBCLUSTER 資料表之後。

    TRUNCATE TABLE 不適用於此目的,因為資料節點會繼續儲存資料表定義。