update process [--remove-angel] --pid=os_pid process_id cluster_name
当进程的状态不再正确反映在命令的输出中时,此命令更新在process_id
集群
中具有进程 ID 的 MySQL NDB Cluster 进程的状态。这通常发生在以下情况中:
cluster_name
show status
--process
该进程是配置了 的数据节点
StopOnError=true
,这样它停止后就不会被 mcmd自动重启。用户可能没有使用start process
命令重新启动进程,而是手动重新启动了进程,这会恢复进程但在不知道恢复的情况下离开mcmd。然后需要anupdate process
来恢复mcmd对进程的控制。该进程是一个已被 mcmd停止的节点,但由于某些原因,其 PID 在操作系统中仍然有效。在某些情况下,进程甚至可能再次运行,而 mcmd不知道或无法控制它。
mcmd由于各种原因无法连接到 mysqld节点(例如,该节点的连接已经太多);节点的进程状态变为
failed
,而 PID 文件继续存在。仅适用于 8.0.30 版及更高版本:当mysqld节点
start process
命令超时时, mcmd 会失去对该节点的控制。修复mysqld节点上的问题后,运行 以通过mcmd 恢复对该节点的控制。update process
该命令通过再次将进程导入
mcmd的控制来工作。在集群导入期间由mcmd对进程执行的检查
是针对该update process
命令执行的。进程在集群 ( process_id
) 中的 ID 及其在操作系统中的 PID(用
--pid
选项指定)都是必需的。假设集群中某个数据节点的进程ID为mycluster
,
3
其在操作系统上的PID为
9846
,数据节点可以更新如下:
mcm> update process --pid=9846 3 mycluster;
+------------------------------+
| Command result |
+------------------------------+
| Process updated successfully |
+------------------------------+
1 row in set (33.07 sec)
对于数据节点或 SQL 节点,该命令仅在每个节点组至少有 1 个副本运行时才有效。
update process
支持一个
--remove-angel
选项,在更新数据节点时应该使用该选项:它会杀死数据节点的任何正在运行的天使进程,并在实际更新之前更新其 PID 文件;这些步骤是更新过程所必需的。