ndb_mgmd — NDB群集管理服务器守护程序
管理服务器是读取集群配置文件并将此信息分发到集群中所有请求该文件的节点的过程。它还维护集群活动的日志。管理客户端可以连接到管理服务器并检查群集的状态。
下表包含特定于NDB群集管理服务器程序ndb_mgmd的选项。附加说明如下表。有关大多数NDB群集程序(包括ndb_mgmd)通用的选项,请参见“ NDB群集程序的通用选项— NDB群集程序的通用选项”。
ndb_mgmd程序的命令行选项
格式 | 描述 | 添加,不建议使用或删除 |
---|---|---|
| 本地绑定地址 | (在所有基于MySQL 8.0的版本中受支持) |
| 启用管理服务器配置缓存;默认为TRUE | (在所有基于MySQL 8.0的版本中受支持) |
| 指定集群配置文件;在NDB-6.4.0和更高版本中,需要--reload或--initial来覆盖配置高速缓存(如果存在) | (在所有基于MySQL 8.0的版本中受支持) |
| 指定集群管理服务器的配置缓存目录 | (在所有基于MySQL 8.0的版本中受支持) |
| 在守护程序模式下运行ndb_mgmd(默认) | (在所有基于MySQL 8.0的版本中受支持) |
| 使管理服务器绕过配置缓存从配置文件中重新加载其配置数据 | (在所有基于MySQL 8.0的版本中受支持) |
| 用于将管理服务器进程安装为Windows服务。不适用于非Windows平台 | (在所有基于MySQL 8.0的版本中受支持) |
| 以交互方式运行ndb_mgmd(生产中未正式支持;仅出于测试目的) | (在所有基于MySQL 8.0的版本中受支持) |
| 在集群日志中写入应用于此节点的消息时要使用的名称 | (在所有基于MySQL 8.0的版本中受支持) |
| 从my.cnf文件读取集群配置数据 | (在所有基于MySQL 8.0的版本中受支持) |
| 不提供任何节点ID检查 | (在所有基于MySQL 8.0的版本中受支持) |
| 不要将ndb_mgmd作为守护程序运行 | (在所有基于MySQL 8.0的版本中受支持) |
| 启动此管理服务器时,请勿等待这些管理节点。还要求使用--ndb-nodeid | (在所有基于MySQL 8.0的版本中受支持) |
| 打印完整配置并退出 | (在所有基于MySQL 8.0的版本中受支持) |
| 使管理服务器将配置文件与其配置缓存进行比较 | (在所有基于MySQL 8.0的版本中受支持) |
| 用于删除以前作为Windows服务安装的管理服务器进程,可以选择指定要删除的服务的名称。不适用于非Windows平台 | (在所有基于MySQL 8.0的版本中受支持) |
| 将其他信息写入日志 | (在所有基于MySQL 8.0的版本中受支持) |
--bind-address=host
属性 值 命令行格式 --bind-address=host 类型 string 默认值 [none] 使管理服务器绑定到特定的网络接口(主机名或IP地址)。此选项没有默认值。
--config-cache
属性 值 命令行格式 --config-cache[=TRUE|FALSE] 类型 布尔型 默认值 TRUE 此选项的默认值为
1
(或TRUE
或ON
),可用于禁用管理服务器的配置缓存,以便它config.ini
每次启动时都读取其配置(请参见“ NDB群集配置文件”)。您可以通过使用以下任一选项启动ndb_mgmd进程来执行此操作:--config-cache=0
--config-cache=FALSE
--config-cache=OFF
--skip-config-cache
仅当管理服务器在启动时没有存储的配置时,才使用上面列出的选项之一才有效。如果管理服务器找到任何配置高速缓存文件,那么将忽略
--config-cache
该--skip-config-cache
选项。因此,要禁用配置缓存,应在第一次启动管理服务器时使用该选项。否则,即-是,如果你想禁用配置缓存管理服务器具有已创建了配置缓存-您必须停止管理服务器,手动删除所有现有的配置缓存文件,然后使用--skip-config-cache
(或--config-cache
设置等于0OFF
,或FALSE
)重新启动管理服务器。配置缓存文件通常在
mysql-cluster
安装目录下的目录中创建(除非使用该--configdir
选项覆盖了该位置)。每次管理服务器更新其配置数据时,它都会写入一个新的缓存文件。这些文件按照以下创建顺序依次命名:ndb_node-id_config.bin.seq-number
node-id
是管理服务器的节点ID;seq-number
是序列号,与1。例如开始,如果管理服务器的节点ID为5,则前三配置缓存文件会被创建时,被命名为ndb_5_config.bin.1
,ndb_5_config.bin.2
和ndb_5_config.bin.3
。如果您打算清除或重新加载配置高速缓存而不实际禁用高速缓存,则应使用选项之一或而不是启动ndb_mgmd。
--reload
--initial
--skip-config-cache
要重新启用配置缓存,只需重新启动管理服务器,但不使用先前用于禁用配置缓存的
--config-cache
or--skip-config-cache
选项。ndb_mgmd不会检查配置目录(
--configdir
),也不会尝试--skip-config-cache
使用该目录。(错误#13428853)--config-file=filename
,-f filename
属性 值 命令行格式 --config-file=file 类型 文件名 默认值 [none] 指示管理服务器其配置文件应使用哪个文件。默认情况下,管理服务器将
config.ini
在与ndb_mgmd可执行文件相同的目录中查找名称为的文件。否则,必须明确指定文件名和位置。此选项没有默认值,除非由于ndb_mgmd是使用
--reload
或--initial
选项启动的,或者因为管理服务器找不到任何配置高速缓存而导致管理服务器被迫读取配置文件,否则该选项将被忽略。如果ndb_mgmd以开头,则也会读取此选项--config-cache=OFF
。有关更多信息,请参见“ NDB群集配置文件”。--configdir=dir_name
属性 值 命令行格式 --configdir=directory
--config-dir=directory
类型 文件名 默认值 $INSTALLDIR/mysql-cluster 指定集群管理服务器的配置缓存目录。
--config-dir
是此选项的别名。--daemon
,-d
属性 值 命令行格式 --daemon 类型 布尔型 默认值 TRUE 指示ndb_mgmd作为守护进程启动。这是默认行为。
在Windows平台上运行ndb_mgmd时,此选项无效。
--initial
属性 值 命令行格式 --initial 类型 布尔型 默认值 FALSE 配置数据在内部缓存,而不是在每次启动管理服务器时从集群全局配置文件中读取(请参见“ NDB集群配置文件”)。
--initial
通过强制管理服务器删除所有现有的缓存文件,然后从集群配置文件中重新读取配置数据并构建新的缓存,使用该选项将覆盖此行为。这与该
--reload
选项有两个不同之处。首先,--reload
仅当文件内容与高速缓存不同时,才强制服务器对照高速缓存检查配置文件并重新加载其数据。其次,--reload
不删除任何现有的缓存文件。如果使用调用ndb_mgmd
--initial
但找不到全局配置文件,则管理服务器无法启动。当管理服务器启动时,它将检查同一NDB群集中的其他管理服务器,并尝试使用其他管理服务器的配置数据。当执行具有多个管理节点的NDB群集的滚动重启时,此行为会产生影响。有关更多信息,请参见“执行NDB群集的滚动重启”。
与该
--config-file
选项一起使用时,仅当实际找到配置文件时才清除缓存。--install[=name]
属性 值 命令行格式 --install[=name] 特定于平台 windows 类型 string 默认值 ndb_mgmd 使ndb_mgmd作为Windows服务安装。(可选)您可以指定服务的名称;如果未设置,则服务名称默认为
ndb_mgmd
。尽管最好在或配置文件中指定其他ndb_mgmd程序选项,但也可以将它们与一起使用。但是,在这种情况下,必须首先指定选项,然后再给出其他任何选项,Windows服务安装才能成功。my.ini
my.cnf
--install
--install
通常不建议将此选项与该选项一起使用
--initial
,因为这会使每次停止和启动服务时擦除并重建配置缓存。如果打算使用任何其他会影响管理服务器启动的ndb_mgmd选项,也应格外小心,并且应绝对确定自己已完全理解并考虑到这样做的任何可能后果。该
--install
选项在非Windows平台上无效。--interactive
属性 值 命令行格式 --interactive 类型 布尔型 默认值 FALSE 以交互方式启动ndb_mgmd;也就是说,管理服务器一运行,就会启动ndb_mgm客户端会话。此选项不会启动任何其他NDB群集节点。
--log-name=name
属性 值 命令行格式 --log-name=name 类型 string 默认值 MgmtSrvr 在群集日志中提供要用于此节点的名称。
--mycnf
属性 值 命令行格式 --mycnf 类型 布尔型 默认值 FALSE 从
my.cnf
文件中读取配置数据。--no-nodeid-checks
属性 值 命令行格式 --no-nodeid-checks 类型 布尔型 默认值 FALSE 不要对节点ID进行任何检查。
--nodaemon
属性 值 命令行格式 --nodaemon 类型 布尔型 默认值 FALSE 指示ndb_mgmd不要作为守护进程启动。
Windows上ndb_mgmd的默认行为是在前台运行,因此在Windows平台上不需要此选项。
--nowait-nodes
属性 值 命令行格式 --nowait-nodes=list 类型 数字 默认值 最低值 1 最大值 255 启动具有两个管理节点的NDB群集时,每个管理服务器通常会检查另一个ndb_mgmd是否也可运行,以及另一个管理服务器的配置是否与其自身相同。但是,有时希望仅使用一个管理节点启动群集(并可能允许稍后再启动另一个ndb_mgmd)。此选项使管理节点绕过对其节点ID传递给此选项的任何其他管理节点的检查,从而允许群集启动,就好像配置为仅使用已启动的管理节点一样。
为了说明起见,请考虑
config.ini
文件的以下部分(此处已省略了与该示例无关的大多数配置参数):[ndbd] NodeId = 1 HostName = 198.51.100.101 [ndbd] NodeId = 2 HostName = 198.51.100.102 [ndbd] NodeId = 3 HostName = 198.51.100.103 [ndbd] NodeId = 4 HostName = 198.51.100.104 [ndb_mgmd] NodeId = 10 HostName = 198.51.100.150 [ndb_mgmd] NodeId = 11 HostName = 198.51.100.151 [api] NodeId = 20 HostName = 198.51.100.200 [api] NodeId = 21 HostName = 198.51.100.201
假设您希望仅使用具有节点ID
10
并在IP地址为198.51.100.150的主机上运行的管理服务器来启动此群集。(例如,由于硬件故障,您打算将其移至其他管理服务器的主机暂时不可用,而您正在等待修复它。)要以这种方式启动群集,请使用命令在计算机上的198.51.100.150上输入以下命令:shell>
ndb_mgmd --ndb-nodeid=10 --nowait-nodes=11如上例所示,在使用时
--nowait-nodes
,还必须使用该--ndb-nodeid
选项来指定此ndb_mgmd进程的节点ID 。然后,您可以按照通常的方式启动集群的每个数据节点。如果您希望稍后在第一个管理服务器之外启动并使用第二个管理服务器而不重新启动数据节点,则必须使用引用两个管理服务器的连接字符串来启动每个数据节点,如下所示:
shell>
ndbd -c 198.51.100.150,198.51.100.151对于要作为与该群集连接的NDB群集SQL节点启动的任何mysqld进程使用的连接字符串,也是如此。有关更多信息,请参见“ NDB群集连接字符串”。
与ndb_mgmd一起使用时,此选项仅影响管理节点相对于其他管理节点的行为。不要将其与ndbd或ndbmtd
--nowait-nodes
所使用的选项混为一谈,以使集群以少于其完整数据节点的数量开始。当与数据节点一起使用时,此选项仅影响其他数据节点的行为。可以将多个管理节点ID作为逗号分隔的列表传递给此选项。每个节点ID不得小于1且不大于255。实际上,对于同一个NDB群集使用多于两个的管理服务器(或有这样做的必要)是非常罕见的;因此,每个ID都必须大于等于2。在大多数情况下,只需将不希望在启动集群时使用的一台管理服务器的单节点ID传递给此选项。
注意
以后启动“缺少的”管理服务器时,其配置必须与群集已在使用的管理服务器的配置匹配。否则,它将无法通过现有管理服务器执行的配置检查,并且不会启动。
--print-full-config
,-P
属性 值 命令行格式 --print-full-config 类型 布尔型 默认值 FALSE 显示有关群集配置的扩展信息。使用命令行上的此选项,ndb_mgmd进程将打印有关集群设置的信息,包括集群配置节以及参数及其值的详细列表。通常与
--config-file
(-f
)选项一起使用。--reload
属性 值 命令行格式 --reload 类型 布尔型 默认值 FALSE NDB群集配置数据是在内部存储的,而不是在每次启动管理服务器时从群集全局配置文件中读取的(请参见“ NDB群集配置文件”)。使用此选项将强制管理服务器对照集群配置文件检查其内部数据存储,并在发现配置文件与高速缓存不匹配时重新加载配置。现有配置缓存文件将保留,但不使用。
这与该
--initial
选项有两个不同之处。首先,--initial
导致所有缓存文件被删除。其次,--initial
强制管理服务器重新读取全局配置文件并构造新的缓存。如果管理服务器找不到全局配置文件,则该
--reload
选项将被忽略。当
--reload
被使用时,管理服务器必须能够与数据节点和它试图读取全局配置文件之前集群中的任何其他管理服务器进行通信;否则,管理服务器无法启动。这可能是由于网络环境的变化而发生的,例如节点的新IP地址或更改的防火墙配置。在这种情况下,您必须使用--initial
强制将现有的缓存配置丢弃并从文件中重新加载。有关更多信息,请参见“执行NDB群集的滚动重启”。--remove{=name]
属性 值 命令行格式 --remove[=name] 特定于平台 windows 类型 string 默认值 ndb_mgmd 删除已作为Windows服务安装的管理服务器进程,可以选择指定要删除的服务的名称。仅适用于Windows平台。
--verbose
,-v
属性 值 命令行格式 --verbose 类型 布尔型 默认值 FALSE 删除已作为Windows服务安装的管理服务器进程,可以选择指定要删除的服务的名称。仅适用于Windows平台。
启动管理服务器时,不一定必须指定连接字符串。但是,如果使用多个管理服务器,则应提供连接字符串,并且群集中的每个节点都应明确指定其节点ID。
有关使用连接字符串的信息,请参见“ NDB群集连接字符串”。“ndb_mgmd-NDB群集管理服务器守护程序”描述了ndb_mgmd的其他选项。
以下文件由ndb_mgmd在其起始目录中创建或使用,并DataDir
按照config.ini
配置文件中的指定放置。在下面的列表中,node_id
是唯一节点标识符。
config.ini
是整个集群的配置文件。该文件由用户创建,并由管理服务器读取。“ NDB群集的配置”讨论了如何设置此文件。ndb_node_id_cluster.log
是集群事件日志文件。此类事件的示例包括检查点启动和完成,节点启动事件,节点故障以及内存使用级别。可以在“ NDB群集的管理”中找到带有说明的群集事件的完整列表。默认情况下,当群集日志的大小达到一百万字节时,该文件将重命名为,其中是群集日志文件的序列号。(例如:如果已经存在序列号为1、2和3的文件,则使用数字命名下一个日志文件。)您可以使用以下命令更改文件大小和数量以及集群日志的其他特征。配置参数。
ndb_node_id_cluster.log.seq_id
seq_id
4
LogDestination
ndb_node_id_out.log
是用于文件stdout
和stderr
运行管理服务器作为后台进程时。ndb_node_id.pid
是在将管理服务器作为守护程序运行时使用的进程ID文件。