改变的过程old_proc_type[:proc-id]=new_proc_typecluster_nameold_proc_type|new_proc_type:{ndbd | ndbmtd}
使用这个命令(MySQL集群NDB 7.0及以后)更改流程类型对于一个给定的MySQL集群过程或一组MySQL集群流程从一个流程类型(old-process-type
)到另一个进程类型(new-process-type
)。
目前,只有两种过程类型使用这个命令ndbd
和ndbmtd
。这意味着改变的过程
可用于改变数据节点的过程在一个或多个数据节点上运行单线程数据节点守护进程(ndbd)到多线程数据节点守护进程(ndbmtd),反之亦然。
默认情况下,改变的过程
影响到所有数据节点运行old-process-type
。通过指定一个可选的process_id
,可以限制其行动的数据节点进程ID。
假设您有一个名为集群mycluster
有两个数据节点使用ndbd过程,反映在以下的输出显示状态
命令:
mcm >显示状态——mycluster过程;+ - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | NodeId | | | |主机状态过程节点组| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - 49 + | | ndb_mgmd | flundra运行| | | | 1 | ndbd | tonfisk | | n /运行| | 2 | ndbd | grindval | | | n /运行50 | | mysqld |麦加朝圣运行| | | | | 51 mysqld | torsk运行| | | | | 52 ndbapi | *运行| | | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - + 6行组(0.06秒)
改变两个数据节点,使用多线程(ndbmtd)流程,可以发出以下命令显示在这里,没有任何process_id
说明符:
mcm >变化过程ndbd = ndbmtd mycluster;+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | |命令结果+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + |过程改变成功| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1行设置(2分钟17.51秒)
命令执行之后,您可以验证现在使用两个数据节点ndbmtd通过检查适当的输出显示状态
命令,如下所示:
mcm >显示状态——mycluster过程;+ - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | NodeId | | | |主机状态过程节点组| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - 49 + | | ndb_mgmd | flundra运行| | | | 1 | ndbmtd | tonfisk | | n /运行| | 2 | ndbmtd | grindval | | | n /运行50 | | mysqld |麦加朝圣运行| | | | | 51 mysqld | torsk运行| | | | | 52 ndbapi | *运行| | | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - + 6行组(0.09秒)
的改变的过程
命令可以使用集群是否或数据节点或节点改变正在运行。然而,命令执行更快如果数据节点或数据节点改变不运行。下一组的例子说明了这一点。
这是可能的(有时是可取的)使用ndbd和ndbmtd数据节点并发进程;因此,也有可能使用变化过程命令
改变一个数据节点流程单线程和多线程,或从多线程线程。要做到这一点,您必须指定数据节点进程使用它的进程ID。
首先,我们停止集群,并验证所有进程不再运行,如下所示:
mcm >停止集群mycluster;+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | |命令结果+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +集群停止成功| | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1行设置(22.93秒)mcm >显示状态——mycluster过程;+ - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | NodeId | | | |主机状态过程节点组| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - 49 + | | ndb_mgmd | flundra |停止了| | | 1 | ndbmtd | tonfisk | |停止n / a | | 2 | ndbmtd | grindval | |停止n / a | | 50 | mysqld |麦加朝圣|停止了| | | 51 | mysqld | torsk |停止了| | | | 52 ndbapi | * |停止| | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - + 6行组(0.05秒)
下面的命令改变只有节点进程ID2
从使用多线程数据节点守护进程单线程版本:
mcm >变化过程ndbmtd: 2 = ndbd mycluster;+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | |命令结果+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + |过程改变成功| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1行组(6.52秒)
正如您可以看到的,改变的过程
运行更快,当过程改变没有运行。正如前面提到的,您可以验证命令成功使用显示状态
:
mcm >显示状态——mycluster过程;+ - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | NodeId | | | |主机状态过程节点组| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - 49 + | | ndb_mgmd | flundra |停止了| | | 1 | ndbmtd | tonfisk | |停止n / a | | 2 | ndbd | grindval | |停止n / a | | 50 | mysqld |麦加朝圣|停止了| | | 51 | mysqld | torsk |停止了| | | | 52 ndbapi | * |停止| | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - + 6行组(0.07秒)
完成这个例子中,我们再次启动集群,使用启动集群
2号回来,然后改变节点ndbd(线程)ndbmtd(多线程)使用改变的过程
,然后验证使用的变化显示状态
:
mcm >开始集群mycluster;+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | |命令结果+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +集群开始成功| | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1行设置(36.43秒)mcm >修改过程ndbd: 2 = ndbmtd mycluster;+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | |命令结果+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + |过程改变成功| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1行设置(2分钟10.41秒)mcm >显示状态——mycluster过程;+ - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | NodeId | | | |主机状态过程节点组| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - 49 + | | ndb_mgmd | flundra运行| | | | 1 | ndbmtd | tonfisk | | n /运行| | 2 | ndbmtd | grindval | | | n /运行50 | | mysqld |麦加朝圣运行| | | | | 51 mysqld | torsk运行| | | | | 52 ndbapi | *运行| | | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - + 6行组(0.11秒)
你可以看到它需要更少的时间来停止集群,修改一个数据节点的过程,然后再次启动集群比集群运行时更改流程。然而,如果你这样做,集群不可用而停止。
如前所述,改变的过程
只有工作ndbd和ndbmtd流程;试图使用任何其他过程导致命令失败的错误类型,如下所示:
mcm >变化过程ndb_mgmd = mysqld mycluster;错误7009(00经理):流程ndb_mgmd和mysqld不能互换在这个包中mcm >变化过程ndbd = mysqld mycluster;错误7009(00经理):流程ndbd在这个包和mysqld不能互换