管理服务器是读取集群配置文件并将其分布到集群中的所有节点的进程。它还维护集群活动的日志。管理客户端可以连接到管理服务器并检查集群的状态。
可以与 ndb_mgmd 一起使用的所有选项都显示在以下表格中。表格后面是描述。
表 25.25 使用 ndb_mgmd 程序的命令行选项
Format | Description | Added, Deprecated, or Removed |
---|---|---|
本地绑定地址 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
覆盖 my.cnf 文件中的群组配置部分的默认后缀;用于测试 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
启用管理服务器配置缓存;默认为 true |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
指定集群配置文件;也可以指定 --reload 或 --initial 来覆盖配置缓存 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
指定集群管理服务器配置缓存目录 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
与 --ndb-connectstring 相同 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
以守护进程模式运行 ndb_mgmd(默认) |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在读取全局文件后读取给定的文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
仅从给定的文件中读取默认选项 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
也读取带有 concat(group, suffix) 的组 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
显示帮助文本并退出 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
使管理服务器从配置文件中重新加载配置数据,绕过配置缓存 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
用于将管理服务器进程安装为 Windows 服务;不适用于其他平台 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在交互模式下运行 ndb_mgmd(不支持生产环境中使用;仅供测试目的) |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
用于写入集群日志消息的名称,应用于该节点 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
从登录文件中读取给定的路径 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
不从登录路径文件中读取登录路径 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
从 my.cnf 文件中读取集群配置数据 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
设置连接字符串以连接到 ndb_mgmd。语法:"[nodeid=id;][host=]主机名[:端口]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
ndb_mgm 客户端 TLS 要求级别 |
ADDED: 8.3.0 |
|
与 --ndb-connectstring 相同 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
设置该节点的节点 ID,覆盖 --ndb-connectstring 中的 ID |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
包含 TLS 密钥和证书的目录列表 |
ADDED: 8.3.0 |
|
不从任何选项文件中读取默认选项,除登录文件外 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
不执行任何节点 ID 检查 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
不以守护进程方式运行 ndb_mgmd |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
不等待指定的管理节点启动时的管理服务器;需要 --ndb-nodeid 选项 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
打印程序参数列表并退出 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
打印完整配置并退出 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
使管理服务器比较配置文件与配置缓存 |
(在所有基于 MySQL 8.3 的 NDB 发布版中支持) |
|
用于删除之前作为Windows服务安装的管理服务器进程,optionally指定要删除的服务名称;不适用于其他平台 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
不使用配置文件 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
显示帮助文本并退出;与--help相同 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
将额外信息写入日志 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
显示版本信息并退出 |
(在所有基于MySQL 8.3的NDB版本中支持) |
-
Command-Line Format --bind-address=主机
Type 字符串 Default Value [none]
使管理服务器绑定到特定的网络接口(主机名或IP地址)。此选项没有默认值。
-
Command-Line Format --character-sets-dir=路径
包含字符集的目录。
-
Command-Line Format --cluster-config-suffix=名称
Type 字符串 Default Value [none]
覆盖默认组后缀时读取集群配置部分在
my.cnf
中;用于测试。 -
Command-Line Format --config-cache[=TRUE|FALSE]
Type 布尔值 Default Value TRUE
此选项的默认值是
1
(或TRUE
,或ON
),可以用来禁用管理服务器的配置缓存,以便每次启动时从config.ini
读取配置(见 第 25.4.3 节,「NDB 集群配置文件」)。可以通过以下方式禁用配置缓存:-
--config-cache=0
-
--config-cache=FALSE
-
--config-cache=OFF
使用上述任何一个选项都只能在管理服务器第一次启动时生效。如果管理服务器已经创建了配置缓存文件,那么
--config-cache
选项或--skip-config-cache
选项将被忽略。因此,要禁用配置缓存,需要在管理服务器第一次启动时使用该选项。否则,即如果您想禁用已经创建了配置缓存的管理服务器的配置缓存,需要停止管理服务器,手动删除现有的配置缓存文件,然后使用--skip-config-cache
选项重新启动管理服务器(或使用--config-cache
选项设置为 0、OFF
或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
或--skip-config-cache
选项。ndb_mgmd 不检查配置目录 (
--configdir
) 或尝试创建一个目录时使用--skip-config-cache
。(Bug #13428853) -
-
--config-file=
,filename
-f
filename
Command-Line Format --config-file=file
Disabled by skip-config-file
Type 文件名 Default Value [none]
指示管理服务器使用哪个文件作为其配置文件。默认情况下,管理服务器在同一个目录下查找名为
config.ini
的文件;否则,文件名和位置必须被明确指定。该选项没有默认值,并且只有在管理服务器被强制读取配置文件时才生效,例如使用 ndb_mgmd 选项
--reload
或--initial
,或者管理服务器无法找到任何配置缓存。如果--config-file
被指定,而没有--initial
或--reload
,ndb_mgmd 将拒绝启动。该
--config-file
选项也将被读取,如果 ndb_mgmd 使用--config-cache=OFF
启动。请参阅 第 25.4.3 节,“NDB Cluster 配置文件”,以获取更多信息。 -
Command-Line Format --configdir=directory
--config-dir=directory
Type 文件名 Default Value $INSTALLDIR/mysql-cluster
指定集群管理服务器的配置缓存目录。这必须是一个绝对路径。否则,管理服务器将拒绝启动。
--config-dir
是该选项的别名。 -
Command-Line Format --connect-retries=#
Type 整数 Default Value 12
Minimum Value 0
Maximum Value 12
在放弃之前重试连接的次数。
-
Command-Line Format --connect-retry-delay=#
Type 整数 Default Value 5
Minimum Value 0
Maximum Value 5
在尝试联系管理服务器之间等待的秒数。
-
Command-Line Format --connect-string=connection_string
Type 字符串 Default Value [none]
与 --ndb-connectstring相同。
-
Command-Line Format --core-file
在错误时写入核心文件;用于调试。
-
--daemon
,-d
Command-Line Format --daemon
指示 ndb_mgmd 作为守护进程启动。这是默认行为。
在 Windows 平台上运行 ndb_mgmd 时,该选项无效。
-
Command-Line Format --defaults-extra-file=path
Type 字符串 Default Value [none]
在读取全局文件后读取给定的文件。
-
Command-Line Format --defaults-file=path
Type 字符串 Default Value [none]
仅从给定的文件读取默认选项。
-
Command-Line Format --defaults-group-suffix=string
Type 字符串 Default Value [none]
也读取带有 concat(group, suffix) 的组。
-
Command-Line Format --help
显示帮助文本并退出。
-
Command-Line Format --initial
配置数据被缓存在内部,而不是每次启动管理服务器时从集群全局配置文件中读取(参见 第 25.4.3 节,「NDB 集群配置文件」)。使用
--initial
选项将覆盖此行为,强制管理服务器删除任何现有的缓存文件,然后从集群配置文件中重新读取配置数据并构建新的缓存。这与
--reload
选项不同。首先,--reload
强制服务器检查配置文件与缓存的差异,并且仅在文件内容不同于缓存时重新加载数据。其次,--reload
不删除任何现有的缓存文件。如果 ndb_mgmd 使用
--initial
选项启动,但无法找到全局配置文件,管理服务器无法启动。当管理服务器启动时,它会检查同一个 NDB 集群中的另一个管理服务器,并尝试使用另一个管理服务器的配置数据。这行为对执行 NDB 集群的滚动重启有影响。请参阅 第 25.6.5 节,“执行 NDB 集群的滚动重启”,以获取更多信息。
当与
--config-file
选项一起使用时,只有在找到配置文件时才清除缓存。 -
Command-Line Format --install[=name]
Platform Specific Windows Type 字符串 Default Value ndb_mgmd
使 ndb_mgmd 作为 Windows 服务安装。可选地,您可以指定服务的名称;如果不设置,默认服务名称为
ndb_mgmd
。虽然可以在my.ini
或my.cnf
配置文件中指定其他 ndb_mgmd 程序选项,但是在使用--install
选项时,必须首先指定该选项,然后才能指定其他选项,以便 Windows 服务安装成功。通常不建议将该选项与
--initial
选项一起使用,因为这将导致配置缓存每次服务停止和启动时都被清除和重建。同时,如果您计划使用其他 ndb_mgmd 选项来影响管理服务器的启动,请务必完全理解并允许可能的后果。该
--install
选项在非 Windows 平台上无效。 -
Command-Line Format --interactive
以交互模式启动 ndb_mgmd;即,在管理服务器启动后立即启动 ndb_mgm 客户端会话。该选项不启动其他 NDB 集群节点。
-
Command-Line Format --log-name=name
Type 字符串 Default Value MgmtSrvr
为集群日志中使用的节点名称。
-
Command-Line Format --login-path=path
Type 字符串 Default Value [none]
从登录文件中读取给定的路径。
-
Command-Line Format --no-login-paths
跳过从登录路径文件中读取选项。
-
Command-Line Format --mycnf
从
my.cnf
文件中读取配置数据。 -
Command-Line Format --ndb-连接字符串=连接字符串
Type 字符串 Default Value [none]
设置连接字符串。语法:
[nodeid=
覆盖id
;][host=]主机名
[:端口
]。NDB_CONNECTSTRING
和my.cnf
中的条目。如果指定了--config-file
,则忽略该选项;如果同时使用这两个选项,将发出警告。 -
Command-Line Format --ndb-mgm-tls=级别
Type 枚举 Default Value relaxed
Valid Values relaxed
strict
设置连接到管理服务器所需的 TLS 支持级别;可以是
relaxed
或strict
。relaxed
(默认)表示尝试 TLS 连接,但不要求成功:strict
表示需要 TLS 连接。 -
Command-Line Format --ndb-mgmd-host=连接字符串
Type 字符串 Default Value [none]
与 --ndb-connectstring 相同。
-
Command-Line Format --ndb-nodeid=#
Type 整数 Default Value [none]
设置该节点的节点 ID,覆盖 --ndb-connectstring 中的 ID。
-
--ndb-optimized-node-selection
Command-Line Format --ndb-optimized-node-selection
启用事务节点选择的优化。默认启用;使用
--skip-ndb-optimized-node-selection
禁用。 -
Command-Line Format --ndb-tls-search-path=列表
Type 路径名 Default Value (Unix) $HOME/ndb-tls
Default Value (Windows) $HOMEDIR/ndb-tls
指定要搜索 CA 文件的目录列表。在 Unix 平台上,目录名之间用冒号 (
:
) 分隔;在 Windows 系统上,使用分号 (;
) 分隔。目录引用可以是相对的或绝对的,可以包含一个或多个环境变量,每个变量以美元符号 ($
) 开头,并在使用前展开。搜索从左到右进行,直到找到文件。空字符串表示空搜索路径,导致所有搜索失败。点 (
.
) 表示当前工作目录。如果未提供搜索路径,将使用编译时的默认值。该值取决于平台:在 Windows 上是
\ndb-tls
;在其他平台(包括 Linux)上是$HOME/ndb-tls
。可以使用-DWITH_NDB_TLS_SEARCH_PATH
编译 NDB Cluster 来覆盖该值。 -
Command-Line Format --no-nodeid-checks
不执行任何节点 ID 检查。
-
Command-Line Format --nodaemon
指示 ndb_mgmd 不以守护进程方式启动。
默认情况下,ndb_mgmd 在 Windows 上的行为是在前台运行,使得该选项在 Windows 平台上不必要。
-
Command-Line Format --no-defaults
不从任何选项文件(除了登录文件)中读取默认选项。
-
Command-Line Format --nowait-nodes=list
Type 数字 Default Value [none]
Minimum Value 1
Maximum Value 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
假设您想使用只有一个管理服务器的 node ID
10
并在 IP 地址为 198.51.100.150 的主机上运行。(例如,假设您想等待另一个管理服务器的主机计算机修复硬件故障。)要以这种方式启动集群,请在 198.51.100.150 的机器上输入以下命令:$> ndb_mgmd --ndb-nodeid=10 --nowait-nodes=11
如前面的示例所示,当使用
--nowait-nodes
时,您还必须使用--ndb-nodeid
选项指定该 ndb_mgmd 进程的节点 ID。然后,您可以按照通常方式启动集群的数据节点。如果您想在以后启动第二个管理服务器,而不需要重新启动数据节点,您必须使用连接字符串引用两个管理服务器,例如:
$> ndbd -c 198.51.100.150,198.51.100.151
同样,对于任何您想启动的 NDB 集群 SQL 节点,连接字符串也需要引用这两个管理服务器。请参阅 第 25.4.3.3 节,“NDB 集群连接字符串”,以获取更多信息。
当与 ndb_mgmd 一起使用时,该选项仅影响管理节点对其他管理节点的行为。请勿将其与
--nowait-nodes
选项混淆,该选项用于 ndbd 或 ndbmtd,以允许集群在少于完整的数据节点的情况下启动。可以将多个管理节点 ID 传递给该选项,以逗号分隔的列表形式。每个节点 ID 必须介于 1 和 255 之间。在实践中,很少需要使用超过两个管理服务器的同一个 NDB 集群(或需要这样做);在大多数情况下,您只需要将单个管理服务器的节点 ID 传递给该选项,以便在启动集群时不使用该服务器。
Note当您稍后启动““缺失”管理服务器时,其配置必须与集群中已有的管理服务器匹配。否则,它将无法通过现有管理服务器执行的配置检查,并且无法启动。
-
Command-Line Format --打印默认值
打印程序参数列表并退出。
-
--打印完整配置
,-P
Command-Line Format --打印完整配置
显示集群配置的扩展信息。使用该选项时,ndb_mgmd 进程将打印集群设置的信息,包括集群配置部分的详细列表和参数值。通常与
--配置文件
(-f
) 选项一起使用。 -
Command-Line Format --重新加载
NDB 集群配置数据存储在内部,而不是每次启动管理服务器时从集群全局配置文件中读取(见 第 25.4.3 节,“NDB 集群配置文件”)。使用该选项强制管理服务器检查其内部数据存储与集群配置文件,并在找到配置文件不匹配缓存时重新加载配置。
这与
--initial
选项不同。首先,--initial
导致所有缓存文件被删除。其次,--initial
强制管理服务器重新读取全局配置文件并构建新的缓存。如果管理服务器无法找到全局配置文件,那么
--reload
选项将被忽略。使用
--reload
时,管理服务器必须能够与数据节点和集群中的其他管理服务器通信,以便在读取全局配置文件之前;否则,管理服务器将无法启动。这可能是由于网络环境的变化,例如节点的新 IP 地址或防火墙配置的更改。在这种情况下,您必须使用--initial
选项来强制现有的缓存配置被丢弃并从文件中重新加载。请参阅 第 25.6.5 节,“执行 NDB 集群的滚动重启”,以获取更多信息。 -
Command-Line Format --remove[=name]
Platform Specific Windows Type 字符串 Default Value ndb_mgmd
删除已安装为 Windows 服务的管理服务器进程,可能指定要删除的服务名称。仅适用于 Windows 平台。
-
Command-Line Format --跳过配置文件
-
Command-Line Format --使用
显示帮助文本并退出;与 --help 相同。
-
--详细
,-v
Command-Line Format --详细
删除已安装为 Windows 服务的管理服务器进程,可能指定要删除的服务名称。仅适用于 Windows 平台。
-
Command-Line Format --版本
显示版本信息并退出。
启动管理服务器时,不一定需要指定连接字符串。但是,如果您使用多个管理服务器,应该提供连接字符串,并且每个集群节点都应该明确指定其节点 ID。
请参阅 第 25.4.3.3 节,“NDB 集群连接字符串”,了解使用连接字符串的信息。第 25.5.4 节,“ndb_mgmd — NDB 集群管理服务器守护进程”,描述了 ndb_mgmd 的其他选项。
以下文件是由 ndb_mgmd 在其启动目录中创建或使用的,并将其放在 DataDir
中,如 config.ini
配置文件中所指定的。在以下列表中,node_id
是唯一的节点标识符。
-
config.ini
是集群的配置文件。该文件由用户创建并由管理服务器读取。第 25.4 节,“NDB 集群配置” 讨论了如何设置该文件。 -
ndb_
是集群事件日志文件。例如,checkpoint 启动和完成、节点启动事件、节点故障和内存使用级别。完整的集群事件列表及其描述可以在 第 25.6 节,“NDB 集群管理” 中找到。node_id
_cluster.log默认情况下,当集群日志文件的大小达到一百万字节时,该文件将被重命名为
ndb_
,其中node_id
_cluster.log.seq_id
seq_id
是集群日志文件的序列号。(例如:如果已经存在序列号 1、2 和 3 的文件,则下一个日志文件将使用数字4
命名。)您可以使用LogDestination
配置参数更改集群日志的大小、文件数和其他特征。 -
ndb_
是在以守护进程方式运行管理服务器时用于node_id
_out.logstdout
和stderr
的文件。 -
ndb_
是在以守护进程方式运行管理服务器时使用的进程 ID 文件。node_id
.pid