4.6.1add process命令

add process {--processhosts=|-R }process_host_list
    [--set=attribute_assignment_list] 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。列表中引用的任何主机都必须是集群所属站点的成员。此外,所有主机都必须是可解析的。

此命令添加的任何新进程都必须使用命令显式启动。 start process --added

例如,以下命令在主机上 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)

您还可以通过在 .name之后添加“ ”:node_ID. , 手动为要添加到集群的新进程分配节点 ID process_name对于 MySQL Cluster Manager 1.3.3 及更早版本,尝试为ndb_mgmdmysqld手动分配小于 49 的节点 ID或ndbapi失败并报错;然而,自 MySQL Cluster Manager 1.3.4 以来,该限制已被解除。尽管如此,仍然建议您遵循为数据节点保留节点 ID 1 到 48 的最佳实践。以下命令分别 在主机和 上添加节点 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命令,您可以添加非托管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;

因为在使用显示的命令将ndbdmysqld 进程添加到它mycluster之前从未启动过,所以在这种情况下没有必要将 选项与 命令一起使用;所有 5 个进程都已启动。 add process--addedstart cluster

添加到使用导入发生之前 创建的集群的进程将 添加状态,这意味着它无法使用或在导入发生之前启动或停止。 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 Cluster 主机时,您必须使用 IPv4 地址引用这些主机。否则,MySQL Cluster Manager 无法连接到这些主机上的代理进程。请参阅 第 5.1 节,“MySQL 集群管理器使用和设计限制”