4.6.6update process命令

update process [--remove-angel] --pid=os_pid process_id cluster_name

对于 MySQL Cluster Manager 1.4.2 及更高版本:此命令更新 MySQL NDB Cluster 进程 的状态,当进程的状态不再正确反映在命令的输出中时, process_id在 。这通常发生在以下情况中: cluster_nameshow status --process

  • 该进程是配置了 的数据节点 StopOnError=true,这样它停止后就不会被 mcmd自动重启。用户可能没有使用start process 命令重新启动进程,而是手动重新启动了进程,这会恢复进程但在不知道恢复的情况下离开mcmd。然后需要anupdate process来恢复mcmd对进程的控制。

  • 该进程是一个已被 mcmd停止的节点,但由于某些原因,其 PID 在操作系统中仍然有效。在某些情况下,进程甚至可能再次运行,而 mcmd不知道或无法控制它。

  • mcmd由于各种原因无法连接到某个 SQL 节点(例如,该节点的连接已经过多);节点的进程状态变为failed,而 PID 文件继续存在。

该命令通过再次将进程导入 mcmd的控制来工作。在集群导入期间由mcmd对进程执行的检查 是针对该update process命令执行的。进程在集群 ( process_id) 中的 ID 及其在操作系统中的 PID(用 --pid选项指定)都是必需的。假设集群中某个数据节点的进程ID为mycluster3其在操作系统上的PID为 9846,数据节点可以更新如下:

mcm> update process --pid=9846 3 mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Process updated successfully |
+------------------------------+
1 row in set (33.07 sec)

对于数据节点或 SQL 节点,该命令仅在每个节点组至少有 1 个副本运行时才有效。

对于 MySQL Cluster Manager 1.4.7 及更高版本, update process支持一个 --remove-angel 选项,在更新数据节点时应使用该选项:它会终止数据节点的任何正在运行的天使进程,并在实际更新之前更新其 PID 文件;这些步骤是更新过程所必需的。