5.6.1add process命令

add process {--processhosts=|-R }process_host_list
    [--set=attribute_assignment_list] [--verbose | -v] [--sequential-restart] cluster_name

process_host_list:
    process_name[:node_id]@host[,process_name@host[,...]]

process_name:
    {ndb_mgmd|ndbd|ndbmtd|mysqld|ndbapi}

attribute_assignment_list:
    attribute_assignment[,attribute_assignment][,...]

attribute_assignment:
    attribute_name:process_name[=value]

此命令向现有集群添加一个或多个进程,这些进程使用 process_host_listwith --processhosts 选项指定,其格式与命令使用的格式相同 create cluster。列表中引用的任何主机都必须是集群所属站点的成员。此外,所有主机都必须是可解析的。

例如,以下命令 在主机上add process添加两个mysqldtonfisk进程并 添加flundra到名为 的集群 mycluster

mcm> add process --processhosts=mysqld@tonfisk,mysqld@flundra mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Processes added successfully |
+------------------------------+
1 row in set (2 min 10.39 sec)

使用该--verbose 选项,该命令会在添加新进程后显示更新的进程列表:

mcm> add process --processhosts=ndbmtd@tonfisk,ndbmtd@flundra --verbose mycluster;
+--------+----------+---------+
| NodeId | Name     | Host    |
+--------+----------+---------+
| 49     | ndb_mgmd | tonfisk |
| 53     | ndb_mgmd | flundra |
| 1      | ndbmtd   | tonfisk |
| 2      | ndbmtd   | flundra |
| 3      | ndbmtd   | tonfisk |
| 4      | ndbmtd   | flundra |
| 50     | mysqld   | tonfisk |
| 51     | mysqld   | flundra |
| 52     | ndbapi   | *       |
+--------+----------+---------+
9 rows in set (2 min 7.57 sec)

您还可以通过在 .name之后添加“ ”:node_ID. , 手动为要添加到集群的新进程分配节点 ID process_name。仍然建议您遵循为数据节点保留节点 ID 1 到 144 的最佳实践。以下命令 分别在主机和上添加节点 ID 为 10 和 11 的两个ndbd进程: tonfiskflundramycluster

mcm> add process --processhosts=ndbd:10@tonfisk,ndbd:11@flundra mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Processes added successfully |
+------------------------------+
1 row in set (2 min 13.40 sec)

如果运行该 add process命令时集群没有运行,建议您使用该命令一起启动该命令添加的所有新进程,或者使用该命令将其与整个集群一起启动 ——除了启动节点外,两个命令还初始化添加的节点,并通过向集群发出 命令来形成新的集群节点组。如果添加的节点 改为启动,则需要通过ndb_mgm客户端手动运行 。 start process --addedstart clusterCREATE NODEGROUPstart process --initialCREATE NODEGROUP

如果在您运行 add process命令时集群正在运行,则在命令结束时对集群执行滚动重启 add process。使用该 --sequential-restart 选项使滚动重启成为 顺序重启 。

添加空闲进程

使用该add process命令,您可以添加非托管mysqld进程或 应用程序的ndbapi插槽,ndbapi 例如ndb_restore。要添加非托管mysqld进程,请在主机名前加上通配符 *(星号字符):

mcm> add process --processhosts=mysqld@*tonfisk,mysqld@*flundra mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Processes added successfully |
+------------------------------+
1 row in set (2 min 3.14 sec)

要允许非托管mysqld节点从任何主机连接,请使用通配符* (星号字符)代替主机名或 IP 地址:

mcm> add process --processhosts=mysqld@*,mysqld@* mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Processes added successfully |
+------------------------------+
1 row in set (2 min 3.14 sec)

这同样适用于应用程序的ndbapi插槽, ndbapi例如 ndb_restore:在主机名前加上通配符以限制与特定主机的连接,或者仅使用通配符而不使用主机名,以允许 ndbapi来自任何主机的应用程序:

mcm> add process --processhosts=ndbapi@*tonfisk,ndbapi@* mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Processes added successfully |
+------------------------------+
1 row in set (2 min 8.13 sec)

由于空闲进程不受 MySQL 集群管理器管理,因此 在成功添加到集群后无需运行该命令。 start process --added

用于add process简化create cluster命令

集群首次启动前添加的进程随集群一起启动。这使得可以使用此命令来分解原本很长的 create cluster命令。考虑以下创建并启动名为的集群的命令集mycluster

create cluster --processhosts=ndb_mgmd@host1,ndbd@host1,ndbd@host2, \
  mysqld@host3,mysqld@host4 mycluster;
start cluster mycluster;

create cluster命令可以分为自身的较短(且更易于管理)版本,以及几个add process命令。这组命令执行与前一组相同的任务,创建 mycluster与之前完全相同的进程和主机,然后启动它:

create cluster --processhosts=ndb_mgmd@host1 mycluster;
add process --processhosts=ndbd@host1,ndbd@host2 mycluster;
add process --processhosts=mysqld@host3,mysqld@host4 mycluster;
start cluster mycluster;

请注意,添加到使用和导入发生之前 创建的集群的进程将添加状态,这意味着它无法使用或 在导入发生之前启动或停止。 create cluster --importimportstart processstop process

添加时配置新进程

新添加的进程从父集群上对其进程类型有效的配置属性设置继承其配置属性设置,或者如果没有应用则采用该进程类型的默认设置。集群中已有的属性设置必须有进程级别的作用域,才能被后面添加的新进程继承;在添加任何新流程实例之前为现有流程实例设置的实例级设置不适用于任何添加的流程。(有关 属性设置范围的更多信息, 请参阅配置属性。)

添加进程时可以覆盖继承的属性设置;为此,请使用add process命令的 --set选项。该选项将一个属性赋值列表作为其参数,其格式类似于与 getset命令一起使用的格式。假设当前以该 属性 命名的集群中的ndbd进程级设置是,但您希望添加两个新的ndbd进程来 代替。您可以使用以下命令执行此操作: myclusterDataDir/home/users/ndb/cluster-data/tmp/cluster/data

mcm> add process --set=ndbd:DataDir=/tmp/cluster/data
   > --processhosts=mysqld@tonfisk,mysqld@flundra
   > mycluster;
笔记

与您使用命令的方式不同 ,需要紧跟在 选项 后面的set等号 ( )。=--set

当以这种方式设置属性时,这涉及为在 Windows 上运行的进程指定路径,您必须将使用的任何反斜杠 ( \) 替换为正斜杠 ( /),就像使用 set命令一样。有关详细信息,请参阅 在 Windows 上设置包含路径的属性

使用添加进程后add process,您还可以使用该 set命令修改其配置属性设置(或指定其他设置),就像使用 MySQL Cluster Manager 管理的任何其他集群进程一样。

笔记

当启用 IPv6 的 Windows 系统用作 MySQL Cluster Manager 下的 MySQL NDB Cluster 主机时,您必须使用 IPv4 地址引用这些主机。否则,MySQL Cluster Manager 无法连接到这些主机上的代理进程。请参阅 第 6.1 节,“MySQL 集群管理器使用和设计限制”