4.6.6remove process命令

remove process [--removedirs] process_id_list cluster_name

process_id_list:
    process_id[, process_id[, ...]]

此命令 process_id_list从名为 的集群中永久删除 中的进程cluster_name。它提供了一种离线缩减集群的方法。

如果--removedirs使用该选项,将删除指定进程的所有数据。

使用此命令时适用以下限制:

  1. 集群必须处于 created或的状态stopped

  2. 要删除的进程必须处于 stoppedadded或 的状态import

  3. 该命令无法从created状态中的集群中删除所有进程;至少要留下一个进程。

  4. 该命令不能从stopped状态中的集群中删除所有相同类型的进程;集群中必须为每种类型的节点(管理、数据和 API)至少保留一个进程。

  5. 该命令无法删除处于 stopped状态的数据节点,如果它已经是节点组的成员(即,如果它曾经启动过并且功能齐全)。

您可以使用 show status --processorlist processes命令获取给定集群中所有进程的进程 ID:

mcm> show status --process mycluster;
+--------+----------+---------+--------+-----------+-----------+
| NodeId | Process  | Host    | Status | Nodegroup | Package   |
+--------+----------+---------+--------+-----------+-----------+
| 49     | ndb_mgmd | flundra | added  |           | mypackage |
| 1      | ndbmtd   | flundra | added  | n/a       | mypackage |
| 2      | ndbmtd   | flundra | added  | n/a       | mypackage |
| 50     | mysqld   | flundra | added  |           | mypackage |
| 51     | mysqld   | flundra | added  |           | mypackage |
| 52     | ndbapi   | *       | added  |           |           |
| 53     | ndbapi   | *       | added  |           |           |
+--------+----------+---------+--------+-----------+-----------+
7 rows in set (0.03 sec)

进程 ID 与上述或某些其他 mcm客户端命令的输出或 ndb_mgm -e "show"命令的输出中显示的进程的节点 ID 相同(请参阅 ndb_mgm — NDB Cluster Management Client) . 在上面的例子中,50 可以mycluster通过以下命令删除进程ID为 的SQL节点:

mcm> remove process 50 mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Process removed successfully |
+------------------------------+
1 row in set (0.48 sec)

在这种情况下,由于集群从未启动过,我们也可以删除两个数据节点:

mcm> remove process 1,2 mycluster;
+------------------------------+
| Command result               |
+------------------------------+
| Process removed successfully |
+------------------------------+
1 row in set (0.40 sec)