25.5.31 NDB 等待器 — 等待 NDB 集群达到给定状态
NDB Waiter 重复地(每 100 毫秒)打印出所有集群数据节点的状态,直到集群达到给定状态或--timeout限制超过时退出。默认情况下,它等待集群实现STARTED状态,在这种状态中所有节点已启动并连接到集群。这可以使用--no-contact和--not-started选项重写。
NDB Waiter 工具报告的节点状态如下:
下表列出了可与ndb_waiter一起使用的选项。附加描述在表后面。
ndb_waiter [-c connection_string]
-
Command-Line Format --character-sets-dir=path包含字符集的目录。
-
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] -
Command-Line Format --core-fileWrite core file on error; used in debugging.
-
Command-Line Format --defaults-extra-file=pathType String Default Value [none]Read given file after global files are read.
-
Command-Line Format --defaults-file=pathType String Default Value [none]从给定文件只读取默认选项。
-
Command-Line Format --defaults-group-suffix=stringType String Default Value [none]也读取组与concat(group, suffix)的结果。
-
Command-Line Format --login-path=pathType String Default Value [none]从登录文件中读取给定路径。
-
Command-Line Format --no-login-paths跳过从登录路径文件中读取选项。
-
Command-Line Format --help显示帮助文本并退出。
-
Command-Line Format --ndb-connectstring=connection_stringType String Default Value [none]设置连接字符串,用于连接到ndb_mgmd。语法:
[nodeid=。覆盖id;][host=]hostname[:port]NDB_CONNECTSTRING和my.cnf中的条目。 -
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-nodeid=#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=listType 路径名 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来重写此值。 -
--no-contact,-n而不是等待
STARTED状态,ndb_waiter继续运行,直到集群达到NO_CONTACT状态后退出。 -
Command-Line Format --no-defaults不从任何选项文件中读取默认选项,除了登录文件。
-
相反,不等待
STARTED状态,ndb_waiter继续运行,直到集群达到NOT_STARTED状态后退出。 -
当使用此选项时,ndb_waiter不等待节点列表中的节点。列表是逗号分隔的;范围可以通过连字符表示,如下所示:
$> ndb_waiter --nowait-nodes=1,3,7-9Important不要同时使用此选项和
--wait-nodes选项。 -
Command-Line Format --print-defaults打印程序参数列表并退出。
-
--timeout=,秒-t秒等待时间。程序在达到所需状态之前退出,如果超过了这个数值的秒数。如果没有达到所需状态,程序将继续运行并重新检查状态。默认为120秒(1200个报告周期)。
-
程序等待集群进入单用户模式。
-
Command-Line Format --usage显示帮助文本并退出;与
--help相同。 -
Command-Line Format --verbose=#Type 整数 Default Value 2Minimum Value 0Maximum Value 2控制打印输出的详细程度。可能的级别及其效果如下所示:
-
0: 不打印(只返回退出代码;请参阅以下内容以获取退出码)。 -
1: 只打印最终连接状态。 -
2: 每次检查时打印状态。这是在MySQL 8.4之前的NDB集群版本中相同行为。
下面列出了ndb_waiter返回的退出代码及其含义:
-
0: 成功。 -
1: 等待超时。 -
2: 参数错误,例如无效的节点ID。 -
3: 无法连接到管理服务器。
-
-
Command-Line Format --version显示版本信息并退出。
-
--wait-nodes=,list-wlist当使用此选项时,ndb_waiter只等待列表中列出的节点的ID。列表是逗号分隔的;可以使用连字符表示范围,如下所示:
$> ndb_waiter --wait-nodes=2,4-6,10Important不要同时使用此选项和
--nowait-nodes选项。
示例输出。 下面展示了在对4节点集群运行ndb_waiter时的输出。当两个节点已手动关闭并重新启动时,集群中有4个节点。重复报告(由...表示)被省略。
$> ./ndb_waiter -c localhost
Connecting to mgmsrv at (localhost)
State node 1 STARTED
State node 2 NO_CONTACT
State node 3 STARTED
State node 4 NO_CONTACT
Waiting for cluster enter state STARTED
...
State node 1 STARTED
State node 2 UNKNOWN
State node 3 STARTED
State node 4 NO_CONTACT
Waiting for cluster enter state STARTED
...
State node 1 STARTED
State node 2 STARTING
State node 3 STARTED
State node 4 NO_CONTACT
Waiting for cluster enter state STARTED
...
State node 1 STARTED
State node 2 STARTING
State node 3 STARTED
State node 4 UNKNOWN
Waiting for cluster enter state STARTED
...
State node 1 STARTED
State node 2 STARTING
State node 3 STARTED
State node 4 STARTING
Waiting for cluster enter state STARTED
...
State node 1 STARTED
State node 2 STARTED
State node 3 STARTED
State node 4 STARTING
Waiting for cluster enter state STARTED
...
State node 1 STARTED
State node 2 STARTED
State node 3 STARTED
State node 4 STARTED
Waiting for cluster enter state STARTED
如果未指定连接字符串,则ndb_waiter将尝试连接到localhost上的管理服务器,并报告Connecting to mgmsrv at (null)。