21.4.4 ndb_mgmd-NDB 群集 Management 服务器守护程序

Management 服务器是读取集群配置文件并将此信息分发给集群中所有请求该文件的节点的过程。它还维护集群活动的日志。ManagementClient 端可以连接到 Management 服务器并检查群集的状态。

下 table 包含特定于 NDB 群集 Management 服务器程序ndb_mgmd的选项。附加说明如下 table 所示。有关大多数 NDB 群集程序(包括ndb_mgmd)共有的选项,请参见第 21.4.32 节“ NDB 群集程序的公用选项-NDB 群集程序的公用选项”

table21.241 ndb_mgmd 程序的命令行选项

FormatDescription添加,不建议使用或删除
--bind-address=host本地绑定地址(在所有基于 MySQL 5.7 的版本中受支持)
--config-cache[=TRUE|FALSE]启用 Management 服务器配置缓存;默认为 true(在所有基于 MySQL 5.7 的版本中受支持)
--config-file=file ,

-f
指定集群配置文件;还指定--reload 或--initial 以覆盖配置缓存(如果存在)(在所有基于 MySQL 5.7 的版本中受支持)
--configdir=directory ,
--config-dir=directory
指定群集 Management 服务器配置缓存目录(在所有基于 MySQL 5.7 的版本中受支持)
--daemon ,
-d
以守护程序模式运行 ndb_mgmd(默认)(在所有基于 MySQL 5.7 的发行版中受支持)
--initial使 Management 服务器绕过配置缓存从配置文件中重新加载配置数据(在所有基于 MySQL 5.7 的版本中受支持)
--install[=name]用于将 Management 服务器进程安装为 Windows 服务;不适用于其他平台(在所有基于 MySQL 5.7 的版本中受支持)
--interactive以交互方式运行 ndb_mgmd(Producing 未正式支持;仅出于测试目的)(在所有基于 MySQL 5.7 的发行版中均受支持)
--log-name=name编写应用于此节点的群集日志消息时要使用的名称(在所有基于 MySQL 5.7 的版本中受支持)
--mycnf从 my.cnf 文件中读取群集配置数据(在所有基于 MySQL 5.7 的版本中受支持)
--no-nodeid-checks不提供任何节点 ID 检查(所有基于 MySQL 5.7 的版本均支持)
--nodaemon请勿将 ndb_mgmd 作为守护程序运行((所有基于 MySQL 5.7 的发行版均支持)
--nowait-nodes=list启动该 Management 服务器时,请勿 await 指定的 Management 节点;需要--ndb-nodeid 选项(在所有基于 MySQL 5.7 的版本中受支持)
--print-full-config ,
-P
打印完整配置并退出(在所有基于 MySQL 5.7 的版本中受支持)
--reload使 Management 服务器将配置文件与配置缓存进行比较(在所有基于 MySQL 5.7 的版本中受支持)
--remove[=name]用于删除先前作为 Windows 服务安装的 Management 服务器进程,可以选择指定要删除的服务的名称;不适用于其他平台(在所有基于 MySQL 5.7 的版本中受支持)
--verbose ,
-v
将其他信息写入日志(所有基于 MySQL 5.7 的版本均支持)
  • --bind-address=host

PropertyValue
Command-Line Format--bind-address=host
TypeString
Default Value[none]

使 Management 服务器绑定到特定的网络接口(主机名或 IP 地址)。此选项没有默认值。

  • --config-cache

PropertyValue
Command-Line Format--config-cache[=TRUE|FALSE]
TypeBoolean
Default ValueTRUE

此选项的默认值为1(或TRUEON),可用于禁用 Management 服务器的配置缓存,以便它每次启动时都从config.ini读取其配置(请参阅第 21.3.3 节“ NDB 群集配置文件”)。您可以使用以下任一选项启动ndb_mgmd进程来执行此操作:

  • --config-cache=0

    • --config-cache=FALSE

    • --config-cache=OFF

    • --skip-config-cache

仅当 Management 服务器在启动时没有存储的配置时,才使用上面列出的选项之一才有效。如果 Management 服务器找到任何配置缓存文件,则将忽略--config-cache选项或--skip-config-cache选项。因此,要禁用配置缓存,应该在第一次启动 Management 服务器时使用该选项。否则,即,如果您希望为已经*已经创建配置缓存的 Management 服务器禁用配置缓存,则必须停止 Management 服务器,手动删除任何现有的配置缓存文件,然后使用--skip-config-cache重新启动 Management 服务器(或--config-cache设置为等于 0,OFFFALSE)。

配置缓存文件通常在安装目录下名为mysql-cluster的目录中创建(除非已使用--configdir选项覆盖了此位置)。每次 Management 服务器更新其配置数据时,它都会写入一个新的缓存文件。这些文件按照以下创建 Sequences 依次命名:

ndb_node-id_config.bin.seq-number
  • node-id *是 Management 服务器的节点 ID; * seq-number *是从 1 开始的序列号。例如,如果 Management 服务器的节点 ID 为 5,则在创建前三个配置缓存文件时,它们将被命名为ndb_5_config.bin.1ndb_5_config.bin.2ndb_5_config.bin.3

如果您打算清除或重新加载配置高速缓存而不实际禁用高速缓存,则应使用--reload--initial而不是--skip-config-cache选项之一来启动ndb_mgmd

要重新启用配置缓存,只需重新启动 Management 服务器,但不使用以前用来禁用配置缓存的--config-cache--skip-config-cache选项。

ndb_mgmd不会检查配置目录(--configdir),也不会在使用--skip-config-cache时尝试创建一个目录。 (错误#13428853)

  • --config-file=filename , -f filename

PropertyValue
Command-Line Format--config-file=file
TypeFile name
Default Value[none]

指示 Management 服务器其配置文件应使用哪个文件。默认情况下,Management 服务器会在与ndb_mgmd可执行文件相同的目录中查找名为config.ini的文件。否则,必须明确指定文件名和位置。

该选项没有默认值,除非由于ndb_mgmd是使用--reload--initial选项启动或由于 Management 服务器找不到任何配置高速缓存而被迫读取 Management 文件,否则该选项将被忽略。如果ndb_mgmd--config-cache=OFF开头,则也会读取此选项。有关更多信息,请参见第 21.3.3 节“ NDB 群集配置文件”

  • --configdir=dir_name

PropertyValue
Command-Line Format--configdir=directory

--config-dir=directory
TypeFile name
默认值$INSTALLDIR/mysql-cluster

指定集群 Management 服务器的配置缓存目录。 --config-dir是此选项的别名。

  • --daemon , -d

PropertyValue
Command-Line Format--daemon
TypeBoolean
Default ValueTRUE

指示ndb_mgmd作为守护进程启动。这是默认行为。

在 Windows 平台上运行ndb_mgmd时,此选项无效。

  • --initial

PropertyValue
Command-Line Format--initial
TypeBoolean
Default ValueFALSE

配置数据在内部缓存,而不是在每次启动 Management 服务器时从集群全局配置文件中读取(请参见第 21.3.3 节“ NDB 群集配置文件”)。通过强制 Management 服务器删除所有现有的缓存文件,然后从群集配置文件中重新读取配置数据并构建新的缓存,使用--initial选项可替代此行为。

这与--reload选项有两个不同之处。首先,--reload强制服务器对照缓存检查配置文件,并仅在文件内容与缓存不同时才重新加载其数据。其次,--reload不会删除任何现有的缓存文件。

如果使用--initial调用了ndb_mgmd但找不到全局配置文件,则 Management 服务器无法启动。

当 Management 服务器启动时,它将检查同一 NDB 群集中的另一台 Management 服务器,并尝试使用另一台 Management 服务器的配置数据。当执行具有多个 Management 节点的 NDB 群集的滚动重启时,此行为会产生影响。有关更多信息,请参见第 21.5.5 节“执行 NDB 群集的滚动重启”

--config-file选项一起使用时,仅当实际找到配置文件时才清除缓存。

  • --install[=name]

PropertyValue
Command-Line Format--install[=name]
Platform SpecificWindows
TypeString
Default Valuendb_mgmd

使ndb_mgmd作为 Windows 服务安装。 (可选)您可以指定服务的名称;如果未设置,则服务名称默认为ndb_mgmd。尽管最好在my.inimy.cnf配置文件中指定其他ndb_mgmd程序选项,但也可以将它们与--install一起使用。但是,在这种情况下,必须先指定--install选项,然后再给出其他任何选项,Windows 服务安装才能成功。

通常不建议将此选项与--initial选项一起使用,因为这会导致在每次停止和启动服务时擦除并重建配置缓存。如果打算使用影响 Management 服务器启动的任何其他ndb_mgmd选项,也应格外小心,并且应绝对确定自己已完全理解并考虑到这样做的任何可能后果。

--install选项在非 Windows 平台上无效。

  • --interactive

PropertyValue
Command-Line Format--interactive
TypeBoolean
Default ValueFALSE

以互动模式开始ndb_mgmd;也就是说,Management 服务器一运行,就开始ndb_mgmClient 端会话。此选项不会启动任何其他 NDB 群集节点。

  • --log-name=name

PropertyValue
Command-Line Format--log-name=name
TypeString
Default ValueMgmtSrvr

在群集日志中提供要用于此节点的名称。

  • --mycnf

PropertyValue
Command-Line Format--mycnf
TypeBoolean
Default ValueFALSE

my.cnf文件读取配置数据。

  • --no-nodeid-checks

PropertyValue
Command-Line Format--no-nodeid-checks
TypeBoolean
Default ValueFALSE

不要对节点 ID 进行任何检查。

  • --nodaemon

PropertyValue
Command-Line Format--nodaemon
TypeBoolean
Default ValueFALSE

指示ndb_mgmd不要作为守护进程启动。

Windows 上ndb_mgmd的默认行为是在前台运行,因此在 Windows 平台上不需要此选项。

  • --nowait-nodes

PropertyValue
Command-Line Format--nowait-nodes=list
TypeNumeric
Default Value``
Minimum Value1
Maximum Value255

启动具有两个 Management 节点的 NDB 群集时,每个 Management 服务器通常会检查另一个ndb_mgmd是否也可运行,以及另一个 Management 服务器的配置是否与其自身相同。但是,有时希望仅使用一个 Management 节点启动群集(并可能允许稍后再启动另一个ndb_mgmd)。此选项使 Management 节点绕过对其节点 ID 传递给该选项的任何其他 Management 节点的检查,从而允许群集启动,就好像配置为仅使用已启动的 Management 节点一样。

为了说明起见,请考虑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 的主机上运行的 Management 服务器来启动此群集。 (例如,由于硬件故障,您打算将其移至其他 Management 服务器的主机暂时不可用,并且您正在 await 修复它.)要以这种方式启动群集,请使用命令在计算机上的 198.51.100.150 上 Importing 以下命令:

shell> ndb_mgmd --ndb-nodeid=10 --nowait-nodes=11

如上例所示,使用--nowait-nodes时,还必须使用--ndb-nodeid选项来指定此ndb_mgmd进程的节点 ID。

然后,您可以按照通常的方式启动集群的每个数据节点。如果您希望稍后在第一个 Management 服务器之外启动并使用第二个 Management 服务器而不重新启动数据节点,则必须使用引用两个 Management 服务器的连接字符串来启动每个数据节点,如下所示:

shell> ndbd -c 198.51.100.150,198.51.100.151

对于要作为与该群集连接的 NDB 群集 SQL 节点启动的任何mysqld进程使用的连接字符串,也是如此。有关更多信息,请参见第 21.3.3.3 节“ NDB 群集连接字符串”

ndb_mgmd一起使用时,此选项仅影响 Management 节点相对于其他 Management 节点的行为。不要将其与ndbdndbmtd一起使用的--nowait-nodes选项混淆,以允许集群以少于其完整数据节点的数量开始。与数据节点一起使用时,此选项仅影响其他数据节点的行为。

可以将多个 Management 节点 ID 作为逗号分隔的列 table 传递给此选项。每个节点 ID 不得小于 1 且不大于 255.实际上,对于同一个 NDB 群集使用多于两个的 Management 服务器(或有这样做的必要)是非常罕见的。在大多数情况下,只需将不希望在启动集群时使用的一台 Management 服务器的单节点 ID 传递给此选项。

Note

以后启动“丢失的”Management 服务器时,其配置必须与集群已在使用的 Management 服务器的配置匹配。否则,它将无法通过现有 Management 服务器执行的配置检查,并且不会启动。

  • --print-full-config , -P

PropertyValue
Command-Line Format--print-full-config
TypeBoolean
Default ValueFALSE

显示有关群集配置的扩展信息。使用命令行上的此选项,ndb_mgmd进程将打印有关集群设置的信息,包括集群配置部分以及参数及其值的详细列 table。通常与--config-file(-f)选项一起使用。

  • --reload

PropertyValue
Command-Line Format--reload
TypeBoolean
Default ValueFALSE

NDB 群集配置数据是在内部存储的,而不是每次启动 Management 服务器时从群集全局配置文件中读取的数据(请参见第 21.3.3 节“ NDB 群集配置文件”)。使用此选项将强制 Management 服务器对照集群配置文件检查其内部数据存储,并在发现配置文件与高速缓存不匹配时重新加载配置。现有配置缓存文件将保留,但不使用。

这与--initial选项有两个不同之处。首先,--initial导致所有缓存文件被删除。其次,--initial强制 Management 服务器重新读取全局配置文件并构造新的缓存。

如果 Management 服务器找不到全局配置文件,则--reload选项将被忽略。

使用--reload时,Management 服务器在尝试读取全局配置文件之前必须能够与集群中的数据节点和任何其他 Management 服务器进行通信。否则,Management 服务器无法启动。这可能是由于网络环境的变化而发生的,例如节点的新 IP 地址或更改的防火墙配置。在这种情况下,必须使用--initial来强制丢弃现有的缓存配置并从文件中重新加载。有关其他信息,请参见第 21.5.5 节“执行 NDB 群集的滚动重启”

  • --remove{=name]

PropertyValue
Command-Line Format--remove[=name]
Platform SpecificWindows
TypeString
Default Valuendb_mgmd

删除已作为 Windows 服务安装的 Management 服务器进程,可以选择指定要删除的服务的名称。仅适用于 Windows 平台。

  • --verbose , -v

PropertyValue
Command-Line Format--verbose
TypeBoolean
Default ValueFALSE

删除已作为 Windows 服务安装的 Management 服务器进程,可以选择指定要删除的服务的名称。仅适用于 Windows 平台。

启动 Management 服务器时,不一定必须指定连接字符串。但是,如果使用多个 Management 服务器,则应提供连接字符串,并且群集中的每个节点都应明确指定其节点 ID。

有关使用连接字符串的信息,请参见第 21.3.3.3 节“ NDB 群集连接字符串”第 21.4.4 节“ ndb_mgmd-NDB 群集 Management 服务器守护程序”,描述ndb_mgmd的其他选项。

以下文件由ndb_mgmd在其起始目录中创建或使用,并按照config.ini配置文件中的指定放置在DataDir中。在下面的列 table 中,* node_id *是唯一的节点标识符。

  • config.ini是整个集群的配置文件。该文件由用户创建,并由 Management 服务器读取。 第 21.3 节“ NDB 群集的配置”,讨论如何设置此文件。

  • ndb_node_id_cluster.log是集群事件日志文件。此类事件的示例包括检查点启动和完成,节点启动事件,节点故障以及内存使用级别。包含说明的群集事件的完整列 table 可以在第 21.5 节“ NDB 群集的 Management”中找到。

默认情况下,当群集日志的大小达到一百万字节时,文件将重命名为ndb_node_id_cluster.log.seq_id,其中* seq_id *是群集日志文件的序列号。 (例如:如果已经存在序列号为 1、2 和 3 的文件,则使用数字4命名下一个日志文件.)可以使用以下命令更改文件的大小和数量以及集群日志的其他 Feature。 LogDestination配置参数。

  • ndb_node_id_out.log是将 Management 服务器作为守护程序运行时用于stdoutstderr的文件。

  • ndb_node_id.pid是在将 Management 服务器作为守护程序运行时使用的进程 ID 文件。