Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Defining SQL and Other API Nodes in an NDB Cluster

25.4.3.7 在 NDB 集群中定义 SQL 和其他 API 节点

config.ini 文件中的 [mysqld][api] 部分定义了 MySQL 服务器(SQL 节点)和其他应用程序(API 节点)访问集群数据的行为。这里没有必需的参数。如果没有提供计算机或主机名,则任何主机都可以使用该 SQL 或 API 节点。

一般来说,[mysqld] 部分用于指示提供集群 SQL 接口的 MySQL 服务器,而 [api] 部分用于访问集群数据的其他应用程序,但这两个名称实际上是同义的;例如,您可以在 [api] 部分中列出 MySQL 服务器作为 SQL 节点的参数。

Note

有关 NDB 集群的 MySQL 服务器选项的讨论,请参阅 第 25.4.3.9.1 节,“MySQL 服务器选项 for NDB 集群”。有关 NDB 集群系统变量的信息,请参阅 第 25.4.3.9.2 节,“NDB 集群系统变量”

  • Id

    Version (or later) NDB 8.3.0
    Type or units unsigned
    Default [...]
    Range 1 - 255
    Restart Type

    初始系统重启:需要完全关闭集群,擦除和从 备份 中恢复集群文件系统,然后重新启动集群。 (NDB 8.3.0)

    Id 是一个整数值,用于在集群内部消息中标识节点。允许的值范围是 1 到 255(包括)。该值必须在集群中的每个节点上唯一,无论节点类型如何。

    Note

    数据节点 ID 必须小于 145。如果您计划部署大量数据节点,建议将 API 节点(和管理节点)的节点 ID 限制在 144 以上。

    NodeId 是标识 API 节点的首选参数名称。(Id 仍然支持向后兼容,但现在已弃用,并生成警告,未来可能会被删除。)

  • ConnectionMap

    Version (or later) NDB 8.3.0
    Type or units string
    Default [...]
    Range ...
    Restart Type

    节点重启:需要集群的 滚动重启。 (NDB 8.3.0)

    指定要连接的数据节点。

  • NodeId

    Version (or later) NDB 8.3.0
    Type or units unsigned
    Default [...]
    Range 1 - 255
    Restart Type

    初始系统重启:需要完全关闭集群,擦除和从 备份 中恢复集群文件系统,然后重新启动集群。 (NDB 8.3.0)

    NodeId 是一个整数值,用于在集群内部消息中标识节点。允许的值范围是 1 到 255(包括)。该值必须在集群中的每个节点上唯一,无论节点类型如何。

    Note

    数据节点 ID 必须小于 145。如果您计划部署大量数据节点,建议将 API 节点(和管理节点)的节点 ID 限制在 144 以上。

    NodeId 是标识管理节点的首选参数名称。一个别名 Id 在非常旧的 NDB 集群版本中用于此目的,仍然支持向后兼容,但现在已弃用,并生成警告,未来可能会被删除。

  • ExecuteOnComputer

    Version (or later) NDB 8.3.0
    Type or units name
    Default [...]
    Range ...
    Deprecated Yes (in NDB 7.5)
    Restart Type

    系统重启:需要完全关闭和重新启动集群。 (NDB 8.3.0)

    这指的是在配置文件的 [computer] 部分中设置的计算机(主机)的 Id。

    Important

    该参数已弃用,并将在未来版本中删除。请使用 HostName 参数代替。

  • 该节点的节点 ID 只能分配给明确请求它的连接。管理服务器请求 任何 节点 ID 不能使用该节点 ID。此参数可用于在同一主机上运行多个管理服务器时,并且 HostName 不足以区分进程。旨在用于测试。

  • HostName

    Version (or later) NDB 8.3.0
    Type or units 名称或 IP 地址
    Default [...]
    Range ...
    Restart Type

    节点重启: 需要集群的滚动重启。 (NDB 8.3.0)

    指定该参数定义了 SQL 节点(API 节点)的主机名。使用 HostName 指定其他主机名,而不是 localhost

    如果在给定的 [mysql][api] 部分的 config.ini 文件中没有指定 HostName,那么 SQL 或 API 节点可以从任何可以与管理服务器主机机器建立网络连接的主机连接。这与数据节点的默认行为不同,其中 localhost 是假设的 HostName,除非另有指定

  • LocationDomainId

    Version (or later) NDB 8.3.0
    Type or units 整数
    Default 0
    Range 0 - 16
    Restart Type

    系统重启: 需要集群的完全关闭和重启。 (NDB 8.3.0)

    将 SQL 或其他 API 节点分配给特定的 可用性域(也称为可用性区域)内的云环境中。通过告知 NDB 哪些节点在哪些可用性域中,性能可以在云环境中得到改善:

    • 如果请求的数据未在同一节点上找到,读取可以被定向到同一可用性域中的另一个节点。

    • 不同可用性域之间的节点通信将保证使用 NDB 传输器的 WAN 支持,而无需手动干预。

    • 传输器的组号可以基于使用的可用性域,以便 SQL 和其他 API 节点尽可能与同一可用性域中的本地数据节点通信。

    • 仲裁器可以从没有数据节点的可用性域中选择,或者,如果找不到这样的可用性域,从第三个可用性域中选择。

    LocationDomainId 取值为 0 到 16 之间的整数,包括 0,使用 0 与不设置该参数相同。

  • ArbitrationRank

    Version (or later) NDB 8.3.0
    Type or units 0-2
    Default 0
    Range 0 - 2
    Restart Type

    节点重启: 需要集群的滚动重启。 (NDB 8.3.0)

    该参数定义哪些节点可以作为仲裁器。管理节点和 SQL 节点都可以作为仲裁器。值为 0 表示该节点从不作为仲裁器,值为 1 给予该节点高优先级作为仲裁器,值为 2 给予该节点低优先级作为仲裁器。正常配置使用管理服务器作为仲裁器,将其 ArbitrationRank 设置为 1(管理节点的默认值),并将所有 SQL 节点的值设置为 0(SQL 节点的默认值)。

    通过将所有管理节点和 SQL 节点的 ArbitrationRank 设置为 0,可以完全禁用仲裁。你也可以通过覆盖该参数来控制仲裁;为此,请在 config.ini 全局配置文件的 [ndbd default] 部分中设置 Arbitration 参数。

  • ArbitrationDelay

    Version (or later) NDB 8.3.0
    Type or units 毫秒
    Default 0
    Range 0 - 4294967039 (0xFFFFFEFF)
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    将该参数设置为任何其他值,而不是 0(默认值),意味着仲裁器对仲裁请求的响应将被延迟指定的毫秒数。通常不需要更改此值。

  • 批处理字节大小

    Version (or later) NDB 8.3.0
    Type or units 字节
    Default 16K
    Range 1K - 1M
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    对于转换为全表扫描或索引范围扫描的查询,为了获得最佳性能,需要以适当的批处理大小来获取记录。可以根据记录数量(批处理大小)和字节(批处理字节大小)来设置适当的批处理大小。实际批处理大小受到这两个参数的限制。

    查询速度可能会因该参数的设置而变化超过 40%。

    该参数以字节为单位, 默认值为 16K。

  • 批处理大小

    Version (or later) NDB 8.3.0
    Type or units 记录
    Default 256
    Range 1 - 992
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    该参数以记录数量为单位,默认设置为 256。最大大小为 992。

  • 额外发送缓冲区内存

    Version (or later) NDB 8.3.0
    Type or units 字节
    Default 0
    Range 0 - 4294967039 (0xFFFFFEFF)
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    该参数指定了在 addition to 任何已经使用 总发送缓冲区内存, 发送缓冲区内存 或两者设置的 transporter 发送缓冲区内存。

  • 心跳线程优先级

    Version (or later) NDB 8.3.0
    Type or units 字符串
    Default [...]
    Range ...
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    使用该参数设置管理节点和 API 节点的心跳线程调度策略和优先级。该参数的语法如下所示:

    HeartbeatThreadPriority = policy[, priority]
    
    policy:
      {FIFO | RR}

    设置该参数时,必须指定策略。这可以是 FIFO(先入先出)或 RR(轮询)。这可以选择性地跟随优先级(一个整数)。

  • 最大扫描批处理大小

    Version (or later) NDB 8.3.0
    Type or units 字节
    Default 256K
    Range 32K - 16M
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    批处理大小是从每个数据节点发送的每个批处理的大小。大多数扫描都是并行执行的,以保护 MySQL 服务器免受来自多个节点的大量数据的影响;该参数设置了总批处理大小的限制。

    该参数的默认值设置为 256KB。其最大大小为 16MB。

  • 总发送缓冲区内存

    Version (or later) NDB 8.3.0
    Type or units 字节
    Default 0
    Range 256K - 4294967039 (0xFFFFFEFF)
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    该参数用于确定在此节点上分配的共享发送缓冲区内存总量,以便在所有配置的传输器之间共享。

    如果设置了该参数,其最小允许值为 256KB;0 表示该参数未设置。有关更多详细信息,请参阅 第 25.4.3.14 节,“配置 NDB 集群发送缓冲区参数”

  • 自动重新连接

    Version (or later) NDB 8.3.0
    Type or units 布尔值
    Default false
    Range true, false
    Restart Type

    节点重新启动:需要对集群进行 滚动重新启动。(NDB 8.3.0)

    该参数默认为 false。这将强制断开的 API 节点(包括作为 SQL 节点的 MySQL 服务器)使用新的连接来连接集群,而不是尝试重新使用现有的连接,因为重新使用连接可能会在使用动态分配的节点 ID 时引发问题。(Bug #45921)

    Note

    可以使用 NDB API 覆盖该参数。有关更多信息,请参阅 Ndb_cluster_connection::set_auto_reconnect()Ndb_cluster_connection::get_auto_reconnect()

  • 默认操作重做问题操作

    Version (or later) NDB 8.3.0
    Type or units 枚举
    Default QUEUE
    Range ABORT, QUEUE
    Restart Type

    节点重新启动:需要对集群进行 滚动重新启动。(NDB 8.3.0)

    该参数(连同 RedoOverCommitLimitRedoOverCommitCounter) 控制数据节点在 redo 日志刷新到磁盘时的操作处理。当 redo 日志刷新时间超过 RedoOverCommitLimit 秒,超过 RedoOverCommitCounter 次时,会中止所有挂起的事务。

    在这种情况下,节点可以以两种方式响应,具体取决于 DefaultOperationRedoProblemAction 的值,列举如下:

    • ABORT:从中止事务中中止所有挂起的操作。

    • QUEUE:从中止事务中排队所有挂起的操作,以便重新尝试。这是默认值。挂起的操作在 redo 日志空间不足时仍将被中止,即当 P_TAIL_PROBLEM 错误发生时。

  • 默认哈希映射大小

    Version (or later) NDB 8.3.0
    Type or units
    Default 3840
    Range 0 - 3840
    Restart Type

    节点重新启动:需要对集群进行 滚动重新启动。(NDB 8.3.0)

    该参数用于配置 NDB 使用的表哈希映射大小。DefaultHashMapSize 可以取三个可能的值(0、240、3840)。这些值及其效果在下表中描述。

    表 25.16 DefaultHashMapSize 参数值

    Value Description / Effect
    0 使用集群中所有数据节点和 API 节点中设置的最低值;如果没有设置,则使用默认值。
    240 旧默认哈希映射大小
    3840 NDB 8.3 中使用的哈希映射大小

    该参数的原始意图是为了便于从旧版本的 NDB 集群升级或降级,因为哈希映射大小的变化不向后兼容。

  • WAN

    Version (or later) NDB 8.3.0
    Type or units 布尔值
    Default false
    Range true, false
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    使用 WAN TCP 设置作为默认值。

  • ConnectBackoffMaxTime

    Version (or later) NDB 8.3.0
    Type or units 整数
    Default 0
    Range 0 - 4294967039 (0xFFFFFEFF)
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    在具有许多未启动数据节点的 NDB 集群中,该参数的值可以提高,以避免连接尝试到尚未开始在集群中运行的数据节点,以及调节高流量到管理节点。只要 API 节点未连接到任何新数据节点,该参数的值将被应用;否则,ConnectBackoffMaxTime 将用于确定等待连接尝试之间的时间长度。

    节点连接尝试期间经过的时间不包括在该参数的计算时间中。该超时以大约 100 ms 的分辨率应用,开始于 100 ms 的延迟;对于每个后续尝试,该期间的长度将加倍,直到达到 ConnectBackoffMaxTime 毫秒,最高为 100000 ms(100s)。

    一旦 API 节点连接到数据节点,并且该节点报告(在心跳消息中)它已经连接到其他数据节点,对这些数据节点的连接尝试将不再受到该参数的影响,并将每 100 ms 后尝试连接,直到连接成功。一旦数据节点启动,可以需要 HeartbeatIntervalDbApi 的时间让 API 节点通知到该事件。

  • StartConnectBackoffMaxTime

    Version (or later) NDB 8.3.0
    Type or units 整数
    Default 0
    Range 0 - 4294967039 (0xFFFFFEFF)
    Restart Type

    节点重启:需要对集群进行滚动重启。(NDB 8.3.0)

    在具有许多未启动数据节点的 NDB 集群中,该参数的值可以提高,以避免连接尝试到尚未开始在集群中运行的数据节点,以及调节高流量到管理节点。只要 API 节点未连接到任何新数据节点,该参数的值将被应用;否则,ConnectBackoffMaxTime 将用于确定等待连接尝试之间的时间长度。

    节点连接尝试期间经过的时间不包括在该参数的计算时间中。该超时以大约 100 ms 的分辨率应用,开始于 100 ms 的延迟;对于每个后续尝试,该期间的长度将加倍,直到达到 StartConnectBackoffMaxTime 毫秒,最高为 100000 ms(100s)。

    一旦 API 节点连接到数据节点,并且该节点报告(在心跳消息中)它已经连接到其他数据节点,对这些数据节点的连接尝试将不再受到该参数的影响,并将每 100 ms 后尝试连接,直到连接成功。一旦数据节点启动,可以需要 HeartbeatIntervalDbApi 的时间让 API 节点通知到该事件。

API 节点调试参数。 您可以使用 ApiVerbose 配置参数来启用 API 节点的调试输出。该参数采用整数值。 0 是默认值,禁用调试输出;1 启用集群日志中的调试输出;2 添加 DBDICT 调试输出。(错误 #20638450)请参阅 DUMP 1229

您也可以使用SHOW STATUS语句在mysql客户端中从运行作为NDB Cluster SQL节点的MySQL服务器获取信息,如下所示:

mysql> SHOW STATUS LIKE 'ndb%';
+-----------------------------+----------------+
| Variable_name               | Value          |
+-----------------------------+----------------+
| Ndb_cluster_node_id         | 5              |
| Ndb_config_from_host        | 198.51.100.112 |
| Ndb_config_from_port        | 1186           |
| Ndb_number_of_storage_nodes | 4              |
+-----------------------------+----------------+
4 rows in set (0.02 sec)

有关从该语句的输出中出现的状态变量的信息,请参阅第25.4.3.9.3节,“NDB Cluster状态变量”

Note

要将新SQL或API节点添加到正在运行的NDB Cluster的配置中,需要在添加新的[mysqld][api]部分到config.ini文件(或文件,如果您使用多个管理服务器)后,执行所有集群节点的滚动重新启动。这必须在新SQL或API节点可以连接到集群之前完成。

如果新SQL或API节点可以使用集群配置中的未使用的API插槽连接到集群,那么不需要执行集群的任何重新启动。

重新启动类型 本节中的参数描述所使用的重新启动类型的信息如下表所示:

表25.17 NDB Cluster重新启动类型

Symbol Restart Type Description
N 节点 可以使用滚动重新启动(参阅第25.6.5节,“执行NDB Cluster的滚动重新启动”)更新参数
S 系统 必须完全关闭所有集群节点,然后重新启动,以便更改该参数
I 初始 数据节点必须使用--initial选项重新启动