在本节中,我们列出向NDB集群添加新数据节点所需的基本步骤。此程序适用于您是否正在使用ndbd或ndbmtd数据节点进程的二进制文件。有关更详细的示例,请参见第21.5.7.3节“在线增加NDB集群数据节点:详细示例”.
假设您已经有一个正在运行的NDB集群,在线添加数据节点需要执行以下步骤:
编辑集群配置
config.ini
文件,添加新的(ndbd)
待添加节点对应的节。在集群使用多个管理服务器的情况下,需要对所有服务器进行这些更改config.ini
管理服务器使用的文件。中添加的任何新数据节点的节点id必须小心
config.ini
文件中的节点id不能与已有节点的节点id重叠。如果API节点使用动态分配的节点id,并且这些id与希望用于新数据节点的节点id相匹配,则可以强制任何此类API节点使用”迁移”,如本过程后面所述。对所有NDB集群管理服务器进行滚动重启。
对所有现有的NDB集群数据节点进行滚动重启。使用它是不必要的(或通常甚至是不必要的)
——初始
重新启动现有数据节点时。如果正在使用动态分配的id与希望分配给新数据节点的任何节点id相匹配的API节点,那么在此步骤中重新启动任何数据节点进程之前,必须重新启动所有API节点(包括SQL节点)。这将导致以前没有显式分配节点id的API节点放弃这些节点id并获取新节点id。
对连接到NDB集群的所有SQL或API节点进行滚动重启。
启动新的数据节点。
新的数据节点可以以任何顺序启动。它们也可以并发启动,只要它们是在所有现有数据节点完成滚动重新启动之后启动的,并且是在继续下一步之前启动的。
执行一个或多个
创建节点组
命令,创建新数据节点所属的新节点组。在所有数据节点(包括新节点)之间重新分配集群的数据。通常这是通过发出一个
修改表…算法= inplace,重组分区
的声明mysql每个客户端NDBCLUSTER
表格异常方法创建的表
MAX_ROWS
选项,此语句不工作;相反,使用修改表…算法=原地MAX_ROWS =…
重新组织这样的表你也应该记住使用MAX_ROWS
以这种方式设置分区数量的方法在NDB 7.5.4及以后版本中已弃用,在那里您应该使用PARTITION_BALANCE
相反;看到第13.1.18.9节“设置NDB_TABLE选项”,以查询更多资料。请注意这只需要对在添加新节点组时已经存在的表执行。添加新节点组后创建的表中的数据会自动分布;但是,添加到任何给定表的数据
资源描述
在添加新节点之前存在的数据不会使用新节点分布,直到重新组织该表。修改表…重组分区算法= inplace
重新组织分区,但不回收在”老”节点。你可以通过发行,来实现这一点NDBCLUSTER
表,一个优化表
的声明mysql客户端。这适用于内存中可变宽度列所使用的空间
NDB
表。优化表
对于内存中表的固定宽度列不支持;磁盘数据表也不支持。
您可以添加所需的所有节点,然后发出几个创建节点组
命令,将新的节点组添加到集群中。