Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  ndb_waiter — Wait for NDB Cluster to Reach a Given Status

25.5.31 NDB 等待器 — 等待 NDB 集群达到给定状态

NDB Waiter 重复地(每 100 毫秒)打印出所有集群数据节点的状态,直到集群达到给定状态或--timeout限制超过时退出。默认情况下,它等待集群实现STARTED状态,在这种状态中所有节点已启动并连接到集群。这可以使用--no-contact--not-started选项重写。

NDB Waiter 工具报告的节点状态如下:

  • NO_CONTACT: 不能联系到该节点。

  • UNKNOWN: 可以联系到该节点,但其状态尚未知晓。通常,这意味着该节点已收到管理服务器的STARTRESTART命令,但尚未采取行动。

  • NOT_STARTED: 节点已停止,但仍与集群保持联系。这在使用管理客户端的RESTART命令重新启动节点时见到。

  • 启动中: 节点的ndbd进程已启动,但节点尚未加入集群。

  • 已启动: 节点已正常运行,并已加入集群。

  • 正在关闭: 节点正在关闭。

  • 单用户模式: 当集群处于单用户模式时,该状态将显示在所有集群数据节点上。

下表列出了可与ndb_waiter一起使用的选项。附加描述在表后面。

ndb_waiter [-c connection_string]

  • --character-sets-dir

    Command-Line Format --character-sets-dir=path

    包含字符集的目录。

  • --connect-retries

    Command-Line Format --connect-retries=#
    Type 整数
    Default Value 12
    Minimum Value 0
    Maximum Value 12

    连接重试的次数,直到放弃。

  • --connect-retry-delay

    Command-Line Format --connect-retry-delay=#
    Type Integer
    Default Value 5
    Minimum Value 0
    Maximum Value 5

    等待与管理服务器联系的秒数。

  • --connect-string

    Command-Line Format --connect-string=connection_string
    Type String
    Default Value [none]

    --ndb-connectstring相同。

  • Command-Line Format --core-file

    Write core file on error; used in debugging.

  • --defaults-extra-file

    Command-Line Format --defaults-extra-file=path
    Type String
    Default Value [none]

    Read given file after global files are read.

  • --defaults-file

    Command-Line Format --defaults-file=path
    Type String
    Default Value [none]

    从给定文件只读取默认选项。

  • --defaults-group-suffix

    Command-Line Format --defaults-group-suffix=string
    Type String
    Default Value [none]

    也读取组与concat(group, suffix)的结果。

  • --login-path

    Command-Line Format --login-path=path
    Type String
    Default Value [none]

    从登录文件中读取给定路径。

  • --no-login-paths

    Command-Line Format --no-login-paths

    跳过从登录路径文件中读取选项。

  • --help

    Command-Line Format --help

    显示帮助文本并退出。

  • --ndb-connectstring

    Command-Line Format --ndb-connectstring=connection_string
    Type String
    Default Value [none]

    设置连接字符串,用于连接到ndb_mgmd。语法:[nodeid=id;][host=]hostname[:port]。覆盖NDB_CONNECTSTRINGmy.cnf中的条目。

  • --ndb-mgm-tls

    Command-Line Format --ndb-mgm-tls=level
    Type 枚举
    Default Value relaxed
    Valid Values

    relaxed

    strict

    设置连接到管理服务器所需的TLS支持级别;可以是relaxedstrictrelaxed(默认)意味着尝试建立TLS连接,但成功不必;strict意味着必须使用TLS才能连接。

  • --ndb-mgmd-host

    Command-Line Format --ndb-mgmd-host=connection_string
    Type 字符串
    Default Value [none]

    --ndb-connectstring 相同。

  • --ndb-nodeid

    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 禁用。

  • --ndb-tls-search-path

    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状态后退出。

  • --no-defaults

    Command-Line Format --no-defaults

    不从任何选项文件中读取默认选项,除了登录文件。

  • --not-started

    相反,不等待STARTED状态,ndb_waiter继续运行,直到集群达到NOT_STARTED状态后退出。

  • --nowait-nodes=列表

    当使用此选项时,ndb_waiter不等待节点列表中的节点。列表是逗号分隔的;范围可以通过连字符表示,如下所示:

    $> ndb_waiter --nowait-nodes=1,3,7-9
    Important

    不要同时使用此选项和--wait-nodes选项。

  • --print-defaults

    Command-Line Format --print-defaults

    打印程序参数列表并退出。

  • --timeout=, -t

    等待时间。程序在达到所需状态之前退出,如果超过了这个数值的秒数。如果没有达到所需状态,程序将继续运行并重新检查状态。默认为120秒(1200个报告周期)。

  • --single-user

    程序等待集群进入单用户模式。

  • --usage

    Command-Line Format --usage

    显示帮助文本并退出;与--help相同。

  • --verbose

    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: 无法连接到管理服务器。

  • --version

    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
Note

如果未指定连接字符串,则ndb_waiter将尝试连接到localhost上的管理服务器,并报告Connecting to mgmsrv at (null)