25.5.4 NDB 集群管理服务器守护进程
管理服务器是读取集群配置文件并将该信息分配给整个集群中的所有节点的进程。它还维护了集群活动的日志。管理客户端可以连接到管理服务器并检查集群的状态。
以下是ndb_mgmd可用的所有选项的表格。额外描述在表格后面。
-
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
文件中的集群配置部分时, Override 默认的组suffix;用于测试。 -
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
。如果您的意图是purge或重新加载配置缓存,而不是实际禁用缓存,您应该使用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]
instructs the management server to use a specific configuration file。默认情况下,管理服务器会在 ndb_mgmd 可执行文件所在目录中查找名为
config.ini
的文件;否则,文件名和路径必须被明确指定。这个选项没有默认值,并且除非管理服务器被强制读取配置文件(因为 ndb_mgmd 使用
--reload
或--initial
选项启动,或者管理服务器找不到任何配置缓存),否则这个选项将被忽略。如果没有使用--initial
或--reload
选项指定--config-file
,ndb_mgmd 将无法启动。也可以读取
--config-file
选项,如果ndb_mgmd使用--config-cache=OFF
启动。请参阅第25.4.3节,“NDB集群配置文件”,获取更多信息。 -
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 Integer Default Value 5
Minimum Value 0
Maximum Value 5
连接管理服务器时等待的秒数。
-
Command-Line Format --connect-string=connection_string
Type String Default Value [none]
与 --ndb-connectstring相同。
-
Command-Line Format --core-file
在错误情况下写入核心文件;用于调试。
-
--daemon
,-d
Command-Line Format --daemon
instructs ndb_竣 to start as a daemon process. This is the default behavior.
在运行NDB集群管理服务器守护进程时,这个选项无效。
-
Command-Line Format --defaults-extra-file=路径
Type 字符串 Default Value [none]
在读取全局文件后,读取给定的文件。
-
Command-Line Format --defaults-file=路径
Type 字符串 Default Value [none]
只读取给定的文件中的默认选项。
-
Command-Line Format --defaults-group-suffix=字符串
Type 字符串 Default Value [none]
也读取concat(组,后缀)中的组。
-
Command-Line Format --help
显示帮助文本并退出。
-
Command-Line Format --initial
配置数据将被内部缓存,而不是每次启动管理服务器时从集群全局配置文件中读取(见第25.4.3节,“NDB 集群配置文件”)。使用
--initial
选项将覆盖这个行为,强制管理服务器删除任何现有缓存文件,然后从集群配置文件中重新读取配置数据并构建新的缓存。这与
--reload
选项有两点不同。首先,--reload
强制服务器检查配置文件与缓存的内容,如果文件内容与缓存不同,则重新加载数据。其次,--reload
不删除任何现有缓存文件。如果ndb_mgmd使用
--initial
选项,但无法找到全局配置文件,则管理服务器不能启动。当管理服务器启动时,它将检查同一个 NDB 集群中的另一个管理服务器,并尝试使用其他管理服务器的配置数据。这行为在对多个管理节点进行rolling restart时有重要影响。见第25.6.5节,“rolling restart 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
中使用它们。然而,在这种情况下,必须首先指定--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-connectstring=connection_string
Type 字符串 Default Value [none]
设置连接字符串。语法:
[nodeid=
。覆盖了id
;][host=]hostname
[:port
]NDB_CONNECTSTRING
和my. cnf
中的条目。如果指定了--config-file
,则忽略该选项;如果同时使用这两个选项,则发出警告。 -
Command-Line Format --ndb-mgm-tls=level
Type 枚举 Default Value relaxed
Valid Values relaxed
strict
设置连接到管理服务器所需的TLS支持级别;可以是
relaxed
或strict
。relaxed
(默认)表示尝试建立TLS连接,但不要求成功;strict
表示需要在连接时使用TLS。 -
Command-Line Format --ndb-mgmd-host=connection_string
Type 字符串 Default Value [none]
与--ndb-connectstring相同。
-
Command-Line Format --ndb-节点ID=#
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
。可以通过编译 NDB 集群时使用-DWITH_NDB_TLS_SEARCH_PATH
来覆盖该值。 -
Command-Line Format --no-nodeid-checks
不执行任何节点 ID 检查。
-
Command-Line Format --nodaemon
禁止ndb_mgmd以守护进程方式启动。
在 Windows 平台上,ndb_mgmd的默认行为是以前台方式运行,这使得在 Windows 平台上不需要该选项。
-
Command-Line Format --no-defaults
不从任何选项文件中读取默认选项,除了登录文件。
-
Command-Line Format --nowait-nodes=列表
Type 数字 Default Value [无]
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
假设您想使用只有节点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节点连接到这个集群的mysqld进程,您也必须使用连接字符串来引用两个管理服务器。请参阅第25.4.3.3节,“NDB集群连接字符串”,了解更多信息。
在与ndb_mgmd一起使用时,这个选项只影响管理节点对其他管理节点的行为,不要与
--nowait-nodes
选项混淆,该选项用于与ndbd或ndbmtd一起使用,以允许集群在少于其完整数据节点组成的情况下启动;当与数据节点一起使用时,这个选项只影响它们之间的行为。可以将多个管理节点ID作为逗号分隔的列表传递给这个选项,每个节点ID都必须在1到255之间。在实际应用中,通常情况下只需要为同一个NDB集群传递单个管理服务器的节点ID,即不想使用的那个管理服务器。
Note当您后续启动“missing”管理服务器时,它们的配置必须与已经在用集群中的管理服务器匹配。否则,它将失败由现有管理服务器执行的配置检查,并且不会启动。
-
Command-Line Format --print-defaults
打印程序命令行参数列表并退出。
-
Command-Line Format --print-full-config
显示集群配置的详细信息。将该选项添加到命令行上,ndb_mgmd 进程将打印集群设置的信息,包括一个详细的配置部分列表,以及参数和它们的值。通常与
--config-file
(-f
) 选项一起使用。 -
Command-Line Format --reload
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 String Default Value ndb_mgmd
删除已安装为 Windows 服务的管理服务器进程, optionally指定要删除的服务名称。仅适用于 Windows 平台。
-
Command-Line Format --skip-config-file
-
Command-Line Format --usage
显示帮助文本并退出;与
--help
相同。 -
--verbose
,-v
Command-Line Format --verbose
在 Windows 平台上,移除已安装为 Windows 服务的管理服务器进程,可以选择指定要移除的服务名称。
-
Command-Line Format --version
显示版本信息并退出。
在启动管理服务器时,不一定需要指定连接字符串。然而,如果您使用了多个管理服务器,每个节点都应该明确地指定其节点 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_
是集群事件日志文件。这些事件的示例包括检查点启动和完成、节点启动事件、节点故障和内存使用水平。关于集群事件的完整列表和描述,请参见第25.6节,“NDB 集群管理”。节点ID
_cluster.log默认情况下,当集群日志文件的大小达到100万字节时,该文件将被重命名为
ndb_
,其中节点ID
_cluster.log.seq_id
seq_id
是集群日志文件的顺序号。 (例如,如果已经存在具有顺序号1、2和3的文件,那么下一个日志文件将使用数字4
。)您可以使用LogDestination
配置参数来更改集群日志文件的大小、数量和其他特征。 -
ndb_
是在作为守护进程运行管理服务器时使用的stdout和stderr文件。节点ID
_out.log -
ndb_
是在作为守护进程运行管理服务器时使用的进程ID文件。节点ID
.pid