本節提供關於線上新增 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
無法達到此目的,因為資料節點會繼續儲存資料表定義。