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