MySQL Cluster增加数据节点
文章目录
添加新数据节点
添加新数据节点之前已经存在的表 的重新分配不是自动的,但是可以使用MySQL
或另一个MySQL
客户端应用程序中的简单SQL语句来完成。但是,添加到添加新节点组之后创建的表中的所有数据和索引将自动分布在所有群集数据节点之间,包括那些作为新节点组的一部分添加的数据和索引。
-
修改
mysql-cluster.conf
文件,将待添加的节点信息加入配置文件中,如果有多台管理节点,则每台管理节点都需要做此项工作。 -
对所有NDB群集管理服务器执行滚动重启。必须使用
--reload
或--initial
选项重新启动所有管理服务器, 以强制读取新配置。 -
对所有现有的NDB群集数据节点执行滚动重启。不需要使用
--initial
选项 -
对所有
SQL
节点执行滚动重启。 -
启动新的数据节点
-
在管理节点上,执行
CREATE NODEGROUP NodeID[,NodeID,...]
。创建新的节点组,并将新节点加入节点组中。需要注意的是,不同节点组中的主机数量要一致。如果当前节点组中有两个节点,则添加新节点时,需要2*N
个节点。 -
在
SQL
节点上执行ALTER TABLE TableName ALGORITHM=INPLACE, REORGANIZE PARTITION
重新分配集群的数据。 -
在
SQL
节点上执行ALTER TABLE TableName REORGANIZE PARTITION ALGORITHM=INPLACE
重新分配分区数据。7/8步在添加新节点之前的表需要执行(但不是必须),添加新节点后创建的表不需要
-
验证: 历史表在执行7/8步之后,同未执行的表比较,会发现多出分区。多出的分区就是添加的节点数.
|
|
添加新API/SQL
节点
-
修改
mysql-cluster.conf
文件,将待添加的节点信息加入配置文件中,如果有多台管理节点,则每台管理节点都需要做此项工作。 -
对所有NDB群集管理服务器执行滚动重启。必须使用
--reload
或--initial
选项重新启动所有管理服务器,以强制读取新配置。 -
对所有现有的NDB群集数据节点执行滚动重启。不需要使用
--initial
选项。 -
启动新的
API/SQL
节点即可
新节点启动后,会自动同步其他API/SQL
节点中的数据库与相关数据,建议新节点的初始数据库用户名与密码与之前保护一致。
文章作者 UnknowName
上次更新 2020-09-12