add process {--processhosts=|-R }process_host_list
[--set=attribute_assignment_list] [--verbose | -v] [--sequential-restart] 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_list
with
--processhosts
选项指定,其格式与命令使用的格式相同
create cluster
。列表中引用的任何主机都必须是集群所属站点的成员。此外,所有主机都必须是可解析的。
例如,以下命令
在主机上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)
使用该--verbose
选项,该命令会在添加新进程后显示更新的进程列表:
mcm> add process --processhosts=ndbmtd@tonfisk,ndbmtd@flundra --verbose mycluster;
+--------+----------+---------+
| NodeId | Name | Host |
+--------+----------+---------+
| 49 | ndb_mgmd | tonfisk |
| 53 | ndb_mgmd | flundra |
| 1 | ndbmtd | tonfisk |
| 2 | ndbmtd | flundra |
| 3 | ndbmtd | tonfisk |
| 4 | ndbmtd | flundra |
| 50 | mysqld | tonfisk |
| 51 | mysqld | flundra |
| 52 | ndbapi | * |
+--------+----------+---------+
9 rows in set (2 min 7.57 sec)
您还可以通过在 .name之后添加“ ”:
,
手动为要添加到集群的新进程分配节点 ID
node_ID.
process_name
。仍然建议您遵循为数据节点保留节点 ID 1 到 144 的最佳实践。以下命令
分别在主机和上添加节点 ID 为 10 和 11 的两个ndbd进程:
tonfisk
flundra
mycluster
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
命令时集群没有运行,建议您使用该命令一起启动该命令添加的所有新进程,或者使用该命令将其与整个集群一起启动
——除了启动节点外,两个命令还初始化添加的节点,并通过向集群发出
命令来形成新的集群节点组。如果添加的节点
改为启动,则需要通过ndb_mgm客户端手动运行
。
start
process
--added
start cluster
CREATE NODEGROUP
start process
--initial
CREATE
NODEGROUP
如果在您运行
add process
命令时集群正在运行,则在命令结束时对集群执行滚动重启
add process
。使用该
--sequential-restart
选项使滚动重启成为
顺序重启
。
添加空闲进程
使用该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;
请注意,添加到使用和导入发生之前
创建的集群的进程将添加状态,这意味着它无法使用或
在导入发生之前启动或停止。
create cluster
--import
import
start process
stop process
添加时配置新进程
新添加的进程从父集群上对其进程类型有效的配置属性设置继承其配置属性设置,或者如果没有应用则采用该进程类型的默认设置。集群中已有的属性设置必须有进程级别的作用域,才能被后面添加的新进程继承;在添加任何新流程实例之前为现有流程实例设置的实例级设置不适用于任何添加的流程。(有关 属性设置范围的更多信息, 请参阅配置属性。)
添加进程时可以覆盖继承的属性设置;为此,请使用add
process
命令的
--set
选项。该选项将一个属性赋值列表作为其参数,其格式类似于与
get
和
set
命令一起使用的格式。假设当前以该
属性
命名的集群中的ndbd进程级设置是,但您希望添加两个新的ndbd进程来
代替。您可以使用以下命令执行此操作:
mycluster
DataDir
/home/users/ndb/cluster-data
/tmp/cluster/data
mcm> add process --set=ndbd:DataDir=/tmp/cluster/data
> --processhosts=mysqld@tonfisk,mysqld@flundra
> mycluster;
当以这种方式设置属性时,这涉及为在 Windows 上运行的进程指定路径,您必须将使用的任何反斜杠 ( \
) 替换为正斜杠 ( /
),就像使用
set
命令一样。有关详细信息,请参阅
在 Windows 上设置包含路径的属性。
使用添加进程后add
process
,您还可以使用该
set
命令修改其配置属性设置(或指定其他设置),就像使用 MySQL Cluster Manager 管理的任何其他集群进程一样。
当启用 IPv6 的 Windows 系统用作 MySQL Cluster Manager 下的 MySQL NDB Cluster 主机时,您必须使用 IPv4 地址引用这些主机。否则,MySQL Cluster Manager 无法连接到这些主机上的代理进程。请参阅 第 6.1 节,“MySQL 集群管理器使用和设计限制”。