5.6.4start process命令

start process {[--initial|-i] nodespec | --added} cluster_name

nodespec:
    {nodetype | process_id_list}
process_id_list:
    process_id[, process_id[, ...]]

此命令启动 nodespec名为 的集群 中指定的 MySQL NDB Cluster 进程cluster_name。待启动进程的状态,如 所示 show status --process,必须为addedstopped、 或failed(只有失败的进程正常退出,才能通过命令重新启动)。

1此示例演示如何启动具有属于集群 的进程 ID 的进程mycluster

mcm> start process 1 mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Process started successfully |
+------------------------------+
1 row in set (13.93 sec)

show status --process您可以使用或 获取给定集群中所有进程的进程 ID list processes。这些与这些进程的节点 ID 相同,如其他 mcm客户端命令 的输出所示,get或在 ndb_mgm -e "show"的输出中显示(请参阅 ndb_mgm — NDB Cluster Management Client)。

除了单个节点,您还可以指定要启动的节点类型或节点列表(仅适用于 MySQL Cluster Manager 8.0.29 及更高版本):

mcm> start process mysqld mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Process started successfully |
+------------------------------+
1 row in set (15.72 sec)
mcm> start process 146,147 mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Process started successfully |
+------------------------------+
1 row in set (3.92 sec)

指定要启动的节点列表时必须满足以下要求,否则命令将失败:

  • 列表中的所有节点必须属于相同的进程类型。

  • 该列表不应包括集群的所有受管节点。

  • 命令运行完毕后,每个节点组至少应该有1个正在运行的数据节点,并且集群中应该有一半以上的数据节点在运行。

  • 满足进程依赖的一般规则(例如,一个mysqld节点依赖一些数据节点运行,一个数据节点依赖一些管理节点运行,等等)。

  • StartPartitionedTimeout > 0需要允许单独启动总共两个数据节点中的一个数据节点。

使用--initial 选项(缩写形式 -i:)时,会发生以下情况:

  • 对于数据节点,MySQL Cluster Manager 以 --initial选项启动它,导致数据节点重建其文件系统。

  • 对于 SQL 节点,MySQL Cluster Manager 为 MySQL 8.0 和 5.7 使用mysqld命令重建mysqld数据目录, 为 MySQL 5.6 使用mysql_install_db命令。节点的数据目录必须为空,否则不会尝试重新初始化。 --initialize-insecure

--added使用选项而不是使用 a 调用此命令会 nodespec启动之前添加到集群 using add process但尚未启动的所有节点。对于添加的data和 mysqld 节点,使用 --added option也意味着使用 --initial option,意思是mcmd会尝试初始化添加的节点(见 --initial 上面option的说明)。此外,当使用该 --added选项时,一旦所有添加的节点都在运行, CREATE NODEGROUP就会向管理节点发出命令以创建新的节点组。

您不能使用此命令在已停止或不可用的集群中启动mysqld 进程——尝试这样做会导致错误。例如,这适用于已为集群导入创建集群但导入尚未完成的情况(请参阅 第 5.4.1 节,“create cluster命令”第 4.5 节,“将 MySQL NDB 集群导入到MySQL 集群管理器”)。