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-numbernode-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-ffilenameCommand-Line Format --config-file=fileDisabled by skip-config-fileType 文件名 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=directoryType 文件名 Default Value $INSTALLDIR/mysql-cluster指定集群管理服务器的配置缓存目录。这必须是绝对路径。否则,管理服务器将无法启动。
--config-dir是该选项的别名。 -
Command-Line Format --connect-retries=#Type 整数 Default Value 12Minimum Value 0Maximum Value 12连接失败重试次数。
-
Command-Line Format --connect-retry-delay=#Type Integer Default Value 5Minimum Value 0Maximum Value 5连接管理服务器时等待的秒数。
-
Command-Line Format --connect-string=connection_stringType String Default Value [none]与 --ndb-connectstring相同。
-
Command-Line Format --core-file在错误情况下写入核心文件;用于调试。
-
--daemon,-dCommand-Line Format --daemoninstructs 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=nameType 字符串 Default Value MgmtSrvr为集群日志提供一个节点名称。
-
Command-Line Format --login-path=pathType 字符串 Default Value [none]从登录文件中读取给定的路径。
-
Command-Line Format --no-login-paths跳过从登录路径文件中读取选项。
-
Command-Line Format --mycnf从
my.cnf文件中读取配置数据。 -
Command-Line Format --ndb-connectstring=connection_stringType 字符串 Default Value [none]设置连接字符串。语法:
[nodeid=。覆盖了id;][host=]hostname[:port]NDB_CONNECTSTRING和my. cnf中的条目。如果指定了--config-file,则忽略该选项;如果同时使用这两个选项,则发出警告。 -
Command-Line Format --ndb-mgm-tls=levelType 枚举 Default Value relaxedValid Values relaxedstrict设置连接到管理服务器所需的TLS支持级别;可以是
relaxed或strict。relaxed(默认)表示尝试建立TLS连接,但不要求成功;strict表示需要在连接时使用TLS。 -
Command-Line Format --ndb-mgmd-host=connection_stringType 字符串 Default Value [none]与--ndb-connectstring相同。
-
Command-Line Format --ndb-节点ID=#Type 整数 Default Value [none]为当前节点设置节点 ID,覆盖由 --ndb-connectstring 设置的任何 ID。
-
--ndb-optimized-node-selectionCommand-Line Format --ndb-optimized-node-selection启用事务选择节点的优化。默认启用,可以使用
--skip-ndb-optimized-node-selection禁用。 -
Command-Line Format --ndb-tls-search-path=列表Type 路径名称 Default Value (Unix) $HOME/ndb-tlsDefault 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 1Maximum 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 --reloadNDB 集群配置数据存储在内存中,而不是每次启动管理服务器时从集群全局配置文件中读取(见第 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,-vCommand-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_idseq_id是集群日志文件的顺序号。 (例如,如果已经存在具有顺序号1、2和3的文件,那么下一个日志文件将使用数字4。)您可以使用LogDestination配置参数来更改集群日志文件的大小、数量和其他特征。 -
ndb_是在作为守护进程运行管理服务器时使用的stdout和stderr文件。节点ID_out.log -
ndb_是在作为守护进程运行管理服务器时使用的进程ID文件。节点ID.pid