#### 23.6.7.2 在线添加 NDB Cluster 数据节点:基本过程 在本节中,我们列出了将新数据节点添加到 NDB Cluster 所需的基本步骤。此过程适用于您是否使用[**ndbd**](mysql-cluster-programs-ndbd.html)要么[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)数据节点进程的二进制文件。有关更详细的示例,请参阅[第 23.6.7.3 节,“在线添加 NDB Cluster 数据节点:详细示例”](mysql-cluster-online-add-node-example.html). 假设您已经有一个正在运行的 NDB Cluster,在线添加数据节点需要以下步骤: 1. 编辑集群配置`配置文件`文件,添加新的`[ndbd]`与要添加的节点相对应的部分。在集群使用多个管理服务器的情况下,需要对所有服务器进行这些更改`配置文件`管理服务器使用的文件。 您必须小心,添加的任何新数据节点的节点 ID`配置文件`文件不与现有节点使用的节点 ID 重叠。如果您的 API 节点使用动态分配的节点 ID,并且这些 ID 与您要用于新数据节点的节点 ID 匹配,则可以强制任何此类 API 节点“迁移”,如本过程后面所述。 2. 对所有 NDB Cluster 管理服务器执行滚动重启。 重要的 所有管理服务器都必须重新启动[`--重新加载`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_reload)要么[`- 最初的`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_initial)强制读取新配置的选项。 3. 对所有现有 NDB Cluster 数据节点执行滚动重启。没有必要(甚至通常不需要)使用[`- 最初的`](mysql-cluster-programs-ndbd.html#option_ndbd_initial)重新启动现有数据节点时。 如果您使用的 API 节点具有与您希望分配给新数据节点的任何节点 ID 匹配的动态分配 ID,则必须在此步骤中重新启动任何数据节点进程之前重新启动所有 API 节点(包括 SQL 节点)。这会导致具有先前未显式分配的节点 ID 的任何 API 节点放弃这些节点 ID 并获取新的节点 ID。 4. 对连接到 NDB Cluster 的任何 SQL 或 API 节点执行滚动重启。 5. 启动新的数据节点。 新的数据节点可以以任何顺序启动。也可以同时启动,只要在所有现有数据节点的滚动重启完成后,在进行下一步之前启动即可。 6. 执行一项或多项[`创建节点组`](mysql-cluster-mgm-client-commands.html#ndbclient-create-nodegroup)NDB Cluster 管理客户端中的命令来创建新数据节点所属的新节点组或节点组。 7. 在所有数据节点(包括新节点)之间重新分配集群的数据。通常这是通过发出一个[`ALTER TABLE ...算法=INPLACE,重新组织分区`](alter-table.html)中的声明[**mysql**](mysql.html)每个客户[`NDBCLUSTER`](mysql-cluster.html)桌子。 *例外*:对于使用`MAX_ROWS`选项,此语句不起作用;相反,使用`ALTER TABLE ...算法=INPLACE MAX_ROWS=...`重组这些表格。您还应该记住,使用`MAX_ROWS`不推荐以这种方式设置分区数,您应该使用`PARTITION_BALANCE`反而;看[第 13.1.20.11 节,“设置 NDB 评论选项”](create-table-ndb-comment-options.html), 了解更多信息。 笔记 只有在添加新节点组时已经存在的表才需要这样做。添加新节点组后创建的表中的数据自动分发;但是,添加到任何给定表的数据`表`在重新组织该表之前,不会使用新节点分发在添加新节点之前存在的数据。 8. `ALTER TABLE ...重组​​分区算法=INPLACE`重新组织分区,但不回收“旧”节点上释放的空间。您可以通过为每个[`NDBCLUSTER`](mysql-cluster.html)表,一个[`优化表`](optimize-table.html)中的声明[**mysql**](mysql.html)客户。 这适用于内存中可变宽度列使用的空间`新开发银行`表。`优化表`不支持内存表的固定宽度列;磁盘数据表也不支持它。 您可以添加所需的所有节点,然后发出几个[`创建节点组`](mysql-cluster-mgm-client-commands.html#ndbclient-create-nodegroup)连续命令将新节点组添加到集群。