NDB群集管理客户端中的命令
除了中央配置文件之外,还可以通过管理客户端ndb_mgm可用的命令行界面来控制集群。这是正在运行的群集的主要管理界面。
“ NDB群集中生成的事件报告”中给出了事件日志的命令;“ NDB群集的在线备份”中提供了用于创建备份和从备份还原的命令。
在MySQL Cluster Manager中使用ndb_mgm。 MySQL Cluster Manager 1.4.8为NDB 8.0提供了实验性支持。MySQL Cluster Manager处理启动和停止进程并在内部跟踪其状态,因此对于在MySQL Cluster Manager控制下的NDB Cluster,这些任务不需要使用ndb_mgm。建议不要使用 NDB群集分发版附带的ndb_mgm命令行客户端来执行涉及启动或停止节点的操作。这些措施包括但不限于START
,STOP
,RESTART
,和SHUTDOWN
命令。有关更多信息,请参见MySQL Cluster Manager进程命令。。
管理客户端具有以下基本命令。在下面的清单中,node_id
表示数据节点ID或关键字ALL
,这表示该命令应应用于所有群集的数据节点。
HELP
显示有关所有可用命令的信息。
CONNECT connection-string
连接到由连接字符串指示的管理服务器。如果客户端已经连接到该服务器,则客户端将重新连接。
SHOW
显示有关集群状态的信息。可能的节点状态值包括
UNKNOWN
,NO_CONTACT
,NOT_STARTED
,STARTING
,STARTED
,SHUTTING_DOWN
,和RESTARTING
。该命令的输出还指示群集何时处于单用户模式(状态
SINGLE USER MODE
)。在NDB 8.0.17及更高版本中,当此模式生效时,它还指示哪个API或SQL节点具有独占访问权;仅当连接到群集的所有数据节点和管理节点的版本为8.0.17或更高版本时,此方法才有效。node_id START
使
node_id
(或所有数据节点)标识的数据节点联机。ALL START
仅在所有数据节点上有效,并且不影响管理节点。重要
要使用此命令使数据节点联机,必须使用
--nostart
或启动数据节点-n
。node_id STOP[-a][-f]
停止由标识的数据或管理节点
node_id
。注意
ALL STOP
仅用于停止所有数据节点,并且不影响管理节点。受此命令影响的节点与群集断开连接,并且其关联的ndbd或ndb_mgmd进程终止。
该
-a
选项使节点立即停止,而无需等待任何未决事务的完成。通常,
STOP
如果结果将导致群集不完整,则失败。该-f
选项强制节点关闭而不进行检查。如果使用此选项,结果是群集不完整,则群集将立即关闭。警告
使用该
-a
选项还会禁用安全检查,否则该安全检查会在STOP
调用时执行,以确保停止节点不会导致不完整的群集。换句话说,由于该选项使集群不再具有存储在中的所有数据的完整副本,因此该选项使集群有可能被强制关闭,因此您在使用该-a
选项时应格外小心。STOP
NDB
node_id RESTART[-n][-i][-a][-f]
重新启动由
node_id
(或所有数据节点)标识的数据节点。与
-i
选项一起使用RESTART
会使数据节点执行初始重新启动;即删除并重新创建节点的文件系统。其效果与停止数据节点进程然后从系统外壳使用ndbd重新启动它所获得的效果相同--initial
。注意
使用此选项时,不会删除备份文件和磁盘数据文件。
使用该
-n
选项会使数据节点进程重新启动,但是直到START
发出适当的命令,数据节点才真正联机。此选项的效果与停止数据节点然后使用系统外壳程序中的ndbd--nostart
或ndbd重新启动它所获得的效果相同-n
。使用
-a
原因导致所有当前依赖于该节点的事务中止。当节点重新加入群集时,不会执行GCP检查。通常,
RESTART
如果使节点脱机会导致群集不完整,则失败。该-f
选项强制节点重新启动而不进行检查。如果使用此选项,并且结果是不完整的群集,则会重新启动整个群集。node_id STATUS
显示由
node_id
(或所有数据节点)标识的数据节点的状态信息。该命令的输出还指示群集何时处于单用户模式。
node_id REPORT report-type
显示
report-type
由标识的数据节点node_id
或使用标识的所有数据节点的类型的报告ALL
。目前,有三个可接受的值
report-type
:BackupStatus
提供有关正在进行的群集备份的状态报告MemoryUsage
显示每个数据节点正在使用多少数据存储器和索引存储器,如本示例所示:ndb_mgm>
ALL REPORT MEMORY Node 1: Data usage is 5%(177 32K pages of total 3200) Node 1: Index usage is 0%(108 8K pages of total 12832) Node 2: Data usage is 5%(177 32K pages of total 3200) Node 2: Index usage is 0%(108 8K pages of total 12832)该信息也可从
ndbinfo.memoryusage
表中获得。EventLog
报告来自一个或多个数据节点的事件日志缓冲区的事件。
report-type
不区分大小写且“模糊”;对于MemoryUsage
,您可以使用MEMORY
(如先前示例中所示),,memory
甚至可以简单地使用MEM
(或mem
)。您可以BackupStatus
以类似的方式缩写。ENTER SINGLE USER MODE node_id
进入单用户模式,从而仅
node_id
允许由节点ID标识的MySQL服务器访问数据库。从NDB 8.0.17开始,ndb_mgm客户端清楚地确认此命令已发出并已生效,如下所示:
ndb_mgm>
ENTER SINGLE USER MODE 100 Single user mode entered Access is granted for API node 100 only.同样在NDB 8.0.17和更高版本中,在
SHOW
命令的输出中指示在单用户模式下具有独占访问权的API或SQL节点,如下所示:ndb_mgm>
SHOW Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=5 @127.0.0.1 (mysql-8.0.17 ndb-8.0.17, single user mode, Nodegroup: 0, *) id=6 @127.0.0.1 (mysql-8.0.17 ndb-8.0.17, single user mode, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=50 @127.0.0.1 (mysql-8.0.17 ndb-8.0.17) [mysqld(API)] 2 node(s) id=100 @127.0.0.1 (mysql-8.0.17 ndb-8.0.17, allowed single user) id=101 (not connected, accepting connect from any host)注意
要启用此功能,所有数据和管理节点必须运行NDB Cluster软件的8.0.17版本。
EXIT SINGLE USER MODE
退出单用户模式,使所有SQL节点(即所有正在运行的mysqld进程)能够访问数据库。
注意
EXIT SINGLE USER MODE
即使在非单用户模式下也可以使用,尽管在这种情况下该命令无效。QUIT
,EXIT
终止管理客户端。
该命令不会影响连接到集群的任何节点。
SHUTDOWN
关闭所有群集数据节点和管理节点。要在完成此操作后退出管理客户端,请使用
EXIT
或QUIT
。该命令没有关闭连接到群集的任何SQL节点或API的节点。
CREATE NODEGROUP nodeid[,nodeid,...]
创建一个新的NDB群集节点组,并使数据节点加入该组。
在联机将新的数据节点添加到NDB群集之后,使用此命令,并使它们加入新的节点组,从而开始完全参与群集。该命令以逗号分隔的节点ID列表作为唯一参数,这些列表是刚添加和启动的,将要加入新节点组的节点的ID。节点数必须与已经属于群集的每个节点组中的节点数相同(每个NDB群集节点组必须具有相同数目的节点)。换句话说,如果NDB群集具有2个节点组,每个2个数据节点,则新节点组还必须具有2个数据节点。
该命令创建的新节点组的节点组ID是自动确定的,并且始终是集群中的下一个最高未使用节点组ID。无法手动设置。
有关更多信息,请参见“在线添加NDB群集数据节点”。
DROP NODEGROUP nodegroup_id
删除具有给定的NDB群集节点组
nodegroup_id
。此命令可用于从NDB群集中删除节点组。
DROP NODEGROUP
将要删除的节点组的节点组ID作为其唯一参数。DROP NODEGROUP
仅用于从该节点组中删除受影响的节点组中的数据节点。它不会停止数据节点,也不会将其分配给其他节点组,也不会从群集的配置中删除它们。不属于节点组的数据节点在管理客户端SHOW
命令的输出中用no nodegroup
节点组ID代替,如下所示(用粗体字表示):id=3 @10.100.2.67 (8.0.20-ndb-8.0.20, no nodegroup)
DROP NODEGROUP
仅当要删除的节点组中的所有数据节点完全没有任何表数据和表定义时,该函数才起作用。由于当前无法使用ndb_mgm或mysql客户端从特定数据节点或节点组中删除所有数据,因此这意味着该命令仅在以下两种情况下成功:- 发行后
CREATE NODEGROUP
在ndb_mgm客户端,但在此之前发出任何ALTER TABLE ... REORGANIZE PARTITION
语句中的MySQL的客户端。 NDBCLUSTER
使用删除所有表格后DROP TABLE
。TRUNCATE TABLE
不适用于此目的,因为这只会删除表数据;数据节点将继续存储NDBCLUSTER
表的定义,直到DROP TABLE
发出导致导致表元数据被删除的语句为止。
有关的更多信息
DROP NODEGROUP
,请参见“在线添加NDB群集数据节点”。- 发行后
PROMPT[prompt]
将ndb_mgm显示的提示更改为字符串常量
prompt
。prompt
不应加引号(除非您希望提示中包括引号)。与mysql客户端不同,特殊字符序列和转义符无法识别。如果不带参数调用,该命令会将提示重置为默认值(ndb_mgm>
)。这里显示一些示例:
ndb_mgm>
PROMPT mgm#1: mgm#1:SHOW Cluster Configuration ... mgm#1:PROMPT mymgm > mymgm >PROMPT 'mymgm:' 'mymgm:'PROMPT mymgm: mymgm:PROMPT ndb_mgm>EXIT jon@valhaj:~/bin>请注意,
prompt
不会修剪前导空格和字符串中的空格。尾随空格被删除。node_id NODELOG DEBUG{ON|OFF}
在节点日志中切换调试日志记录,就好像已使用该
--verbose
选项启动了受影响的一个或多个数据节点一样。NODELOG DEBUG ON
开始调试日志记录;NODELOG DEBUG OFF
关闭调试日志记录。
附加命令。ndb_mgm客户端中可用的许多其他命令在其他地方描述,如以下列表所示:
START BACKUP
用于在ndb_mgm客户端中执行在线备份;该ABORT BACKUP
命令用于取消正在进行的备份。有关更多信息,请参见“ NDB群集的在线备份”。- 该
CLUSTERLOG
命令用于执行各种日志记录功能。有关更多信息和示例,请参见“在NDB群集中生成的事件报告”。NODELOG DEBUG
如本节前面所述,激活或禁用节点日志中的调试打印输出。 - 为了进行测试和诊断工作,客户端支持一个
DUMP
命令,该命令可用于在集群上执行内部命令。除非MySQL支持指示,否则绝不能在生产设置中使用它。有关更多信息,请参见《 MySQL NDB Cluster内部手册》。