21.5.7.2 在线添加 NDB 群集数据节点:基本过程

在本节中,我们列出了将新数据节点添加到 NDB 群集所需的基本步骤。无论您是对数据节点进程使用ndbd还是ndbmtd二进制文件,此过程均适用。有关更详细的示例,请参见第 21.5.7.3 节“在线添加 NDB 群集数据节点:详细示例”

假设您已经有一个正在运行的 NDB 群集,则在线添加数据节点需要执行以下步骤:

您必须注意,config.ini文件中添加的任何新数据节点的节点 ID 都不会与现有节点使用的节点 ID 重叠。如果您的 API 节点使用动态分配的节点 ID,并且这些 ID 与您要用于新数据节点的节点 ID 匹配,则可以强制任何此类 API 节点“迁移”,如本过程后面所述。

Important

必须使用--reload--initial选项重新启动所有 Management 服务器,以强制读取新配置。

如果您使用的 API 节点具有动态分配的 ID,这些 ID 与您希望分配给新数据节点的任何节点 ID 匹配,则必须重新启动所有 API 节点(包括 SQL 节点),然后重新启动此步骤中的任何数据节点进程。这将导致具有先前未显式分配的节点 ID 的所有 API 节点放弃这些节点 ID 并获取新的节点 ID。

新的数据节点可以以任何 Sequences 启动。只要它们在所有现有数据节点的滚动重启完成之后且 continue 进行下一步之前启动,它们也可以同时启动。

Note

仅对于添加新节点组时已经存在的 table 才需要执行此操作。添加新节点组后创建的 table 中的数据将自动分发;但是,在重新组织 table 之前,添加到任何给定 tabletbl的,在添加新节点之前已存在的数据不会使用新节点进行分发。

这适用于内存中NDBtable 的可变宽度列所使用的空间。内存 table 中的固定宽度列不支持OPTIMIZE TABLE;磁盘数据 table 也不支持此功能。

您可以添加所需的所有节点,然后连续发出多个CREATE NODEGROUP命令以将新的节点组添加到群集。

首页