介绍在线添加NDB集群节点的行为和当前限制的一般信息。
再分配的数据。在线添加新节点的能力包括重新组织的方法NDBCLUSTER
表数据和索引,以便它们分布在所有数据节点上,包括新数据节点ALTER TABLE……重组分区
声明。支持对内存表和磁盘数据表进行表重组。这种重新分配目前不包括惟一索引(只有有序索引被重新分配)。
的再分配NDBCLUSTER
表在添加新数据节点之前已经存在,它不是自动的,但可以使用中的简单SQL语句来完成mysql或其他MySQL客户端应用程序。但是,在添加新节点组后创建的表中添加的所有数据和索引将自动分布到所有集群数据节点中,包括作为新节点组一部分添加的那些节点。
部分开始。可以在不启动所有新数据节点的情况下添加新节点组。还可以向降级的集群(即仅部分启动的集群,或一个或多个数据节点没有运行的集群)添加新的节点组。在后一种情况下,在添加新节点组之前,集群必须有足够多的节点在运行。
对正在进行的操作的影响。使用NDB Cluster数据的正常DML操作不会因创建或添加新节点组或表重组而受阻。但是,在表重组的同时执行DDL是不可能的——也就是说,当一个ALTER TABLE……重组分区
语句被执行。此外,在执行过程中ALTER TABLE……重组分区
(或任何其他DDL语句的执行),则不可能重新启动集群数据节点。
故障处理。数据节点在创建节点组和重组表过程中失败的处理如下表所示:
表23.65创建节点组和重组表时数据节点失败处理
失败在 | 失败”老”数据节点 | 失败”新”数据节点 | 系统故障 |
---|---|---|---|
节点组的创建 |
|
|
|
表重组 |
|
|
|
删除节点组。的ndb_mgm客户端支持删除节点组
命令,但只有当节点组中的数据节点不包含任何数据时,才可以删除节点组。既然目前没有办法”空”对于特定的数据节点或节点组,该命令只适用于以下两种情况:
发行后
创建节点组
在ndb_mgm客户端,但在发出任何ALTER TABLE……重组分区
语句的mysql客户端。后放弃所有
NDBCLUSTER
表的使用删除表
.截断表
不能用于此目的,因为数据节点继续存储表定义。