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 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]
-
Command-Line Format --core-file
Write core file on error; used in debugging.
-
Command-Line Format --defaults-extra-file=path
Type String Default Value [none]
Read given file after global files are read.
-
Command-Line Format --defaults-file=path
Type String Default Value [none]
从给定文件只读取默认选项。
-
Command-Line Format --defaults-group-suffix=string
Type String Default Value [none]
也读取组与concat(group, suffix)的结果。
-
Command-Line Format --login-path=path
Type String Default Value [none]
从登录文件中读取给定路径。
-
Command-Line Format --no-login-paths
跳过从登录路径文件中读取选项。
-
Command-Line Format --help
显示帮助文本并退出。
-
Command-Line Format --ndb-connectstring=connection_string
Type String Default Value [none]
设置连接字符串,用于连接到ndb_mgmd。语法:
[nodeid=
。覆盖id
;][host=]hostname
[:port
]NDB_CONNECTSTRING
和my.cnf
中的条目。 -
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-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=list
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
来重写此值。 -
--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-9
Important不要同时使用此选项和
--wait-nodes
选项。 -
Command-Line Format --print-defaults
打印程序参数列表并退出。
-
--timeout=
,秒
-t
秒
等待时间。程序在达到所需状态之前退出,如果超过了这个数值的秒数。如果没有达到所需状态,程序将继续运行并重新检查状态。默认为120秒(1200个报告周期)。
-
程序等待集群进入单用户模式。
-
Command-Line Format --usage
显示帮助文本并退出;与
--help
相同。 -
Command-Line Format --verbose=#
Type 整数 Default Value 2
Minimum Value 0
Maximum Value 2
控制打印输出的详细程度。可能的级别及其效果如下所示:
-
0
: 不打印(只返回退出代码;请参阅以下内容以获取退出码)。 -
1
: 只打印最终连接状态。 -
2
: 每次检查时打印状态。这是在MySQL 8.4之前的NDB集群版本中相同行为。
下面列出了ndb_waiter返回的退出代码及其含义:
-
0
: 成功。 -
1
: 等待超时。 -
2
: 参数错误,例如无效的节点ID。 -
3
: 无法连接到管理服务器。
-
-
Command-Line Format --version
显示版本信息并退出。
-
--wait-nodes=
,list
-w
list
当使用此选项时,ndb_waiter只等待列表中列出的节点的ID。列表是逗号分隔的;可以使用连字符表示范围,如下所示:
$> ndb_waiter --wait-nodes=2,4-6,10
Important不要同时使用此选项和
--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)
。