本節提供關於線上新增 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 節點群組建立和資料表重新組織期間的資料節點故障處理
故障發生時 | 在「舊」資料節點中的故障 | 在「新」資料節點中的故障 | 系統故障 |
---|---|---|---|
節點群組建立 |
|
|
|
資料表重新組織 |
|
|
|
捨棄節點群組。ndb_mgm 用戶端支援 DROP NODEGROUP
命令,但僅當節點群組中沒有任何資料節點包含任何資料時,才能捨棄節點群組。由於目前沒有方法可以「清空」特定的資料節點或節點群組,此命令僅在以下兩種情況下有效
在 ndb_mgm 用戶端中發出
CREATE NODEGROUP
後,但在 mysql 用戶端中發出任何ALTER TABLE ... REORGANIZE PARTITION
陳述式之前。在使用
DROP TABLE
捨棄所有NDBCLUSTER
資料表之後。TRUNCATE TABLE
不適用於此目的,因為資料節點會繼續儲存資料表定義。