### 23.5.30 ndb_waiter - 等待 NDB Cluster 达到给定状态

[](<>)

[**数据库\_服务员**](mysql-cluster-programs-ndb-waiter.html)重复（每 100 毫秒）打印出所有集群数据节点的状态，直到集群达到给定状态或[`- 暂停`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_timeout)超过限制，然后退出。默认等待集​​群实现`开始`状态，所有节点都已启动并连接到集群。这可以使用覆盖[`- 没有联系`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_no-contact)和[`- 没有开始`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_not-started)选项。

此实用程序报告的节点状态如下：

-   `没有联系`: 无法联系到节点。

-   `未知`：可以联系到节点，但其状态尚不清楚。通常，这意味着节点收到了一个[`开始`](mysql-cluster-mgm-client-commands.html#ndbclient-start)要么[`重新开始`](mysql-cluster-mgm-client-commands.html#ndbclient-restart)来自管理服务器的命令，但尚未对其执行。

-   `没有开始`：节点已停止，但仍与集群保持联系。使用管理客户端的重新启动节点时会出现这种情况`重新开始`命令。

-   `开始`: 节点的[**ndbd**](mysql-cluster-programs-ndbd.html)进程已启动，但节点尚未加入集群。

-   `开始`：节点运行正常，已加入集群。

-   `SHUTTING_DOWN`: 节点正在关闭。

-   `单用户模式`：当集群处于单用户模式时，会为所有集群数据节点显示。

    可以使用的选项[**数据库\_服务员**](mysql-cluster-programs-ndb-waiter.html)如下表所示。附加说明如下表。

[](<>)

**表 23.50 与程序 ndb 一起使用的命令行选项\_服务员**

| 格式 | 描述 | 添加、弃用或删除 |
| --- | --- | -------- |
| `[--character-sets-dir=path](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_character-sets-dir)` | 包含字符集的目录 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--connect-retries=#](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_connect-retries)` | 放弃前重试连接的次数 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--connect-retry-delay=#](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_connect-retry-delay)` | 尝试联系管理服务器之间等待的秒数 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--connect-string=connection_string](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_connect-string)`,<br/><br/>`[-c connection_string](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_connect-string)` | 与 --ndb-connectstring 相同 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--core-file](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_core-file)` | 错误时写入核心文件；用于调试 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--defaults-extra-file=path](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_defaults-extra-file)` | 读取全局文件后读取给定文件 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--defaults-file=path](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_defaults-file)` | 仅从给定文件中读取默认选项 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--defaults-group-suffix=string](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_defaults-group-suffix)` | 还阅读带有 concat(group, suffix) 的组 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--help](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_help)`,<br/><br/>`[-?](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_help)` | 显示帮助文本并退出 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--login-path=path](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_login-path)` | 从登录文件中读取给定路径 | （所有基于 MySQL 8.0 的 NDB 版本都支持） |
| `[--ndb-connectstring=connection_string](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_ndb-connectstring)`,<br/><br/>`[-c connection_string](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_ndb-connectstring)` | 设置连接字符串以连接到 ndb_mgmd。语法：“[nodeid=id；][host=]主机名[：端口:]“。覆盖NDB中的条目\_连接字符串和我的。cnf | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--ndb mgmd host=connection_string]（mysql集群程序ndb water.html#option_ndb_water_ndb-mgmd-host）`,<br/><br/>`[-c connection_string]（mysql集群程序ndb water.html#option_ndb_water_ndb-mgmd-host）` | 与--ndb connectstring相同 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--ndb nodeid=#]（mysql集群程序ndb water.html#option_ndb_water_ndb-nodeid）` | 设置此节点的节点ID，覆盖由--ndb connectstring设置的任何ID | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--ndb优化节点选择]（mysql集群程序ndb water.html#option_ndb_water_ndb-optimized-node-selection）` | 启用事务节点选择的优化。默认启用；使用--跳过ndb优化节点选择以禁用 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--无联系人]（mysql集群程序ndb waterer.html#选项_ndb_waterer_无联系人）`,<br/><br/>`[-n]（mysql集群程序ndb waterer.html#option_ndb_waterer_no-contact）` | 等待群集达到无接触状态 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--无默认值]（mysql集群程序ndb water.html#选项_ndb_water_无默认值）` | 不要从登录文件以外的任何选项文件中读取默认选项 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--未启动]（mysql集群程序ndb water.html#选项_ndb_water_未启动）` | 等待群集达到未启动状态 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--nowait nodes=list]（mysql集群程序ndb water.html#option_ndb_water_nowait-nodes）` | 不等待的节点列表 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--print defaults]（mysql集群程序ndb water.html#选项_ndb_water_print-defaults）` | 打印程序参数列表并退出 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--单用户]（mysql集群程序ndb waterer.html#选项_ndb_waterer_单用户）` | 等待群集进入单用户模式 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--timeout=#]（mysql集群程序ndb water.html#option_ndb_water_timeout）`,<br/><br/>`[-t#]（mysql集群程序ndb water.html#option_ndb_water_timeout）` | 等待这几秒钟，然后退出群集是否已达到所需状态 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--用法]（mysql集群程序ndb waterer.html#选项_ndb_waterer_用法）`,<br/><br/>`[-?]（mysql集群程序ndb water.html#选项_ndb_water_用法）` | 显示帮助文本并退出；跟…救命 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--version]（mysql集群程序ndb water.html#option_ndb_water_version）`,<br/><br/>`[-V]（mysql集群程序ndb waterer.html#option_ndb_waterr_版本）` | 显示版本信息并退出 | （所有基于MySQL 8.0的NDB版本都支持） |
| `[--wait nodes=list]（mysql集群程序ndb water.html#option_ndb_water_wait-nodes）`,<br/><br/>`[-w list]（mysql集群程序ndb water.html#选项_ndb_water_wait-nodes）` | 要等待的节点列表 | （所有基于MySQL 8.0的NDB版本都支持） |

#### 用法

```
ndb_waiter [-c connection_string]
```

#### 其他选项

-   [](<>) `--字符集目录`

    [](<>)[](<>)

    | 命令行格式 | `--字符集dir=path` |
    | ----- | --------------- |

    包含字符集的目录。

-   [](<>) `--连接重试`

    [](<>)[](<>)

    | 命令行格式 | `--连接重试=#` |
    | ----- | ---------- |
    | 类型 | 整数 |
    | 默认值 | `12` |
    | 最小值 | `0` |
    | 最大值 | `12` |

    放弃之前重试连接的次数。

-   [](<>) `--连接重试延迟`

    [](<>)[](<>)

    | 命令行格式 | `--连接重试延迟=#` |
    | ----- | ------------ |
    | 类型 | 整数 |
    | 默认值 | `5.` |
    | 最小值 | `0` |
    | 最大值 | `5.` |

    尝试联系管理服务器之间等待的秒数。

-   [](<>) `--连接字符串`

    [](<>)[](<>)

    | 命令行格式 | `--连接字符串=连接字符串` |
    | ----- | --------------- |
    | 类型 | 一串 |
    | 默认值 | `[无]` |

    等同于[`--ndb连接字符串`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_ndb-connectstring).

-   [](<>) `--核心文件`

    [](<>)[](<>)

    | 命令行格式 | `--核心文件` |
    | ----- | -------- |

    错误时写入核心文件；用于调试。

-   [](<>) `--默认额外文件`

    [](<>)[](<>)

    | 命令行格式 | `--默认额外文件=路径` |
    | ----- | ------------- |
    | 类型 | 一串 |
    | 默认值 | `[无]` |

    读取全局文件后读取给定文件。

-   [](<>) `--默认文件`

    [](<>)[](<>)

    | 命令行格式 | `--默认文件=路径` |
    | ----- | ----------- |
    | 类型 | 一串 |
    | 默认值 | `[无]` |

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

-   [](<>) `--默认组后缀`

    [](<>)[](<>)

    | 命令行格式 | `--默认组后缀=字符串` |
    | ----- | ------------- |
    | 类型 | 一串 |
    | 默认值 | `[无]` |

    同时阅读带有concat（组，后缀）的组。

-   [](<>) `--登录路径`

    [](<>)[](<>)

    | 命令行格式 | `--登录路径=路径` |
    | ----- | ----------- |
    | 类型 | 一串 |
    | 默认值 | `[无]` |

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

-   [](<>) `--救命`

    [](<>)[](<>)

    | 命令行格式 | `--救命` |
    | ----- | ------ |

    显示帮助文本并退出。

-   [](<>) `--ndb连接字符串`

    [](<>)[](<>)

    | 命令行格式 | `--ndb connectstring=连接字符串` |
    | ----- | --------------------------- |
    | 类型 | 一串 |
    | 默认值 | `[无]` |

    设置连接到ndb的连接字符串\_mgmd。语法：“[nodeid=id；][host=]主机名[：端口:]“。覆盖NDB中的条目\_连接字符串和我的。cnf。

-   [](<>) `--ndb mgmd主机`

    [](<>)[](<>)

    | 命令行格式 | `--ndb mgmd主机=连接\u字符串` |
    | ----- | ---------------------- |
    | 类型 | 一串 |
    | 默认值 | `[无]` |

    和--[`ndb连接字符串`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_ndb-connectstring).

-   [](<>) `--ndb节点ID`

    [](<>)[](<>)

    | 命令行格式 | `--ndb节点ID=#` |
    | ----- | ------------- |
    | 类型 | 整数 |
    | 默认值 | `[无]` |

    设置此节点的节点ID，覆盖由[`--ndb连接字符串`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_ndb-connectstring).

-   [](<>) `--ndb优化节点选择`

    [](<>)[](<>)

    | 命令行格式 | `--ndb优化节点选择` |
    | ----- | ------------- |

    启用事务节点选择的优化。默认启用；使用`--跳过ndb优化节点选择`禁用。

-   [](<>) `--没有联系`, `-n`

    [](<>)[](<>)

    而不是等待`起动`状态[**ndb\_服务员**](mysql-cluster-programs-ndb-waiter.html)继续运行，直到群集到达`没有联系`退出前的状态。

-   [](<>) `--没有默认值`

    [](<>)[](<>)

    | 命令行格式 | `--没有默认值` |
    | ----- | --------- |

    不要从登录文件以外的任何选项文件中读取默认选项。

-   [](<>) `--还没开始`

    [](<>)[](<>)

    而不是等待`起动`状态[**ndb\_服务员**](mysql-cluster-programs-ndb-waiter.html)继续运行，直到群集到达`还没开始`退出前的状态。

-   [](<>) `--nowait节点=*`列表`*`

    [](<>)[](<>)

    使用此选项时，[**ndb\_服务员**](mysql-cluster-programs-ndb-waiter.html)不等待列出其ID的节点。列表以逗号分隔；范围可以用破折号表示，如下所示：

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

    重要的

    做*不*将此选项与[`--等待节点`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_wait-nodes)选项

-   [](<>) `--打印默认值`

    [](<>)[](<>)

    | 命令行格式 | `--打印默认值` |
    | ----- | --------- |

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

-   [](<>) `--暂停=*`秒`*`, `-t*`秒`*`

    [](<>)[](<>)

    是时候等了。如果在此秒数内未达到所需状态，程序将退出。默认值为120秒（1200个报告周期）。

-   [](<>) `--单用户`

    [](<>)[](<>)

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

-   [](<>) `--用法`

    [](<>)[](<>)

    | 命令行格式 | `--用法` |
    | ----- | ------ |

    显示帮助文本并退出；等同于[`--救命`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_help).

-   [](<>) `--版本`

    [](<>)[](<>)

    | 命令行格式 | `--版本` |
    | ----- | ------ |

    显示版本信息并退出。

-   [](<>) `--等待节点=*`列表`*`, `-w*`列表`*`

    [](<>)[](<>)

    使用此选项时，[**ndb\_服务员**](mysql-cluster-programs-ndb-waiter.html)仅等待列出其ID的节点。列表以逗号分隔；范围可以用破折号表示，如下所示：

    ```
    $> ndb_waiter --wait-nodes=2,4-6,10
    ```

    重要的

    做*不*将此选项与[`--nowait节点`](mysql-cluster-programs-ndb-waiter.html#option_ndb_waiter_nowait-nodes)选项

**样本输出。**这里显示的是[**ndb\_服务员**](mysql-cluster-programs-ndb-waiter.html)在一个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\_服务员**](mysql-cluster-programs-ndb-waiter.html)尝试连接上的管理层`本地服务器`，以及报告`在（空）处连接到mgmsrv`.

在NDB 8.0.20之前，此程序已打印`NDBT_计划出口-*`地位`*`由于不必要地依赖于`NDBT`测试库。这种依赖关系已被删除，消除了无关的输出。
