在这一小节,我们来认识一下 MySQL-Cluster 集群的管理节点的作用,主要包括:负责启停其他节点;配置集群的相关参数;监控 SQL节点、数据节点的运行状态,以及收集集群运行的日志信息……
负责启停其他节点
MySQL-Cluster 集群环境的管理节点主要是用来管理 MySQL-Cluster 集群内的其他节点,包括提供配置数据、启动停止节点操作、数据备份作业等。
由于管理节点只是起到管理其他节点的作用,所以关联节点的故障其实并不会影响到业务对数据的正常读写。同时在对整个群集的启动过程中,我们一般是需要启动管理节点后,再启动其他的节点如 SQL节点、数据节点。
负责配置集群的相关参数
在管理节点中,使用配置文件 config.ini 来配置集群中有多少个需要维护的副本数、以及配置每个数据节点上为数据和索引分配的内存大小、IP地址、数据存放目录等信息。
负责监控其他节点的运行情况
在我们日常的工作中,我们可以在管理节点中查看每个节点的运行状态,如下面所示,会显示出每个节点的配置信息及其运行的状态。
ndb_mgm> show Cluster Configuration [ndbd(NDB)] 2 node(s) id=2 @192.168.1.6 (mysql-5.7.36 ndb-7.6.20, Nodegroup: 0, *) id=3 @192.168.1.7 (mysql-5.7.36 ndb-7.6.20, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.1.3 (mysql-5.7.36 ndb-7.6.20) [mysqld(API)] 2 node(s) id=4 @192.168.1.4 (mysql-5.7.36 ndb-7.6.20) id=5 @192.168.1.5 (mysql-5.7.36 ndb-7.6.20)
在管理节点进行对集群进行维护性操作时,我们是使用 ndb_mgm 命令进入交互界面的,如上所示,在ndb_mgm 窗口可以查看每个节点的信息,同时还可以对某个节点进行启停,以及对集群中数据进行备份,具体内容如下所示。
ndb_mgm> help NDB Cluster -- Management Client -- Help HELP Print help text HELP COMMAND Print detailed help for COMMAND(e.g. SHOW) SHOW Print information about cluster CREATE NODEGROUP <id>,<id>… Add a Nodegroup containing nodes DROP NODEGROUP <NG> Drop nodegroup with id NG START BACKUP [NOWAIT | WAIT STARTED | WAIT COMPLETED] START BACKUP [<backup id>] [NOWAIT | WAIT STARTED | WAIT COMPLETED] START BACKUP [<backup id>] [SNAPSHOTSTART | SNAPSHOTEND] [NOWAIT | WAIT STARTED | WAIT COMPLETED] Start backup (default WAIT COMPLETED,SNAPSHOTEND) ABORT BACKUP <backup id> Abort backup SHUTDOWN Shutdown all processes in cluster PROMPT [<prompt-string>] Toggle the prompt between string specified or default prompt if no string specified CLUSTERLOG ON [<severity>] … Enable Cluster logging CLUSTERLOG OFF [<severity>] … Disable Cluster logging CLUSTERLOG TOGGLE [<severity>] … Toggle severity filter on/off CLUSTERLOG INFO Print cluster log information <id> START Start data node (started with -n) <id> RESTART [-n] [-i] [-a] [-f] Restart data or management server node <id> STOP [-a] [-f] Stop data or management server node <id> NODELOG DEBUG ON Enable Debug logging in node log <id> NODELOG DEBUG OFF Disable Debug logging in node log ENTER SINGLE USER MODE <id> Enter single user mode EXIT SINGLE USER MODE Exit single user mode <id> STATUS Print status <id> CLUSTERLOG {<category>=<level>}+ Set log level for cluster log PURGE STALE SESSIONS Reset reserved nodeid's in the mgmt server CONNECT [<connectstring>] Connect to management server (reconnect if already connected) <id> REPORT <report-type> Display report for <report-type> QUIT Quit management client <severity> = ALERT | CRITICAL | ERROR | WARNING | INFO | DEBUG <category> = STARTUP | SHUTDOWN | STATISTICS | CHECKPOINT | NODERESTART | CONNECTION | INFO | ERROR | CONGESTION | DEBUG | BACKUP | SCHEMA <report-type> = BACKUPSTATUS | MEMORYUSAGE | EVENTLOG <level> = 0 - 15 <id> = ALL | Any database node id For detailed help on COMMAND, use HELP COMMAND.
从上述代码中我们可以发现,ndb_mgm 工具的作用是非常多的,那么具体这些功能如何使用,我会在之会的小节中逐一讲解。
负责收集集群内各个节点的运行日志信息
最后,对于管理节点来说,它会记录整个集群的 Cluster 日志信息,Cluster 中的每个节点会从管理节点获取配置数据,并时刻管理节点进行通信,当某一个节点出现故障时,会将故障信息传送到管理节点,并写入 Cluster 的日志文件中。
好了,管理节点的内容就大概介绍到这里,在这一小节中大家只要知道管理节点在 MySQL-Cluster 集群中起到的作用即可,对于如何配置管理节点及在管理节点上的维护性操作,我们会在后面进行详细讲解。