#### 23.4.3.6 定义 NDB Cluster 数据节点

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

这`[ndbd]`和`[ndbd 默认]`部分用于配置集群数据节点的行为。

`[ndbd]`和`[ndbd 默认]`无论您是否使用，始终用作部分名称[**ndbd**](mysql-cluster-programs-ndbd.html)要么[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)数据节点进程的二进制文件。

有许多参数可以控制缓冲区大小、池大小、超时等。唯一的强制参数是其中之一`执行计算机`要么`主机名`;这必须在本地定义`[ndbd]`部分。

参数[`副本数`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-noofreplicas)应定义在`[ndbd 默认]`部分，因为它对所有集群数据节点都是通用的。没有必要设置[`副本数`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-noofreplicas)，但最好明确设置它。

大多数数据节点参数都设置在`[ndbd 默认]`部分。只有那些明确声明为能够设置局部值的参数才允许在`[ndbd]`部分。在场的地方，`主机名`,`节点 ID`和`执行计算机` *必须*在本地定义`[ndbd]`部分，而不是在任何其他部分`配置文件`.换言之，这些参数的设置特定于一个数据节点。

对于那些影响内存使用或缓冲区大小的参数，可以使用`ķ`,`米`， 要么`G`作为后缀表示1024、1024×1024或1024×1024×1024的单位。（例如，`100K`表示 100 × 1024 = 102400。）

参数名称和值不区分大小写，除非在 MySQL 服务器中使用`我的.cnf`要么`我的.ini`文件，在这种情况下，它们区分大小写。

有关特定于 NDB Cluster 磁盘数据表的配置参数的信息可以在本节后面找到（请参阅[磁盘数据配置参数](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-disk-data-parameters)）。

所有这些参数也适用于[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)（多线程版本的[**ndbd**](mysql-cluster-programs-ndbd.html)）。三个额外的数据节点配置参数——[`MaxNoOfExecutionThreads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads),[`线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig)， 和[`NoOfFragmentLogParts`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-nooffragmentlogparts)-适用于[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)只要;与这些一起使用时没有效果[**ndbd**](mysql-cluster-programs-ndbd.html).有关详细信息，请参阅[多线程配置参数 (ndbmtd)](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-ndbmtd-parameters).也可以看看[第 23.5.3 节，“ndbmtd - NDB Cluster 数据节点守护程序（多线程）”](mysql-cluster-programs-ndbmtd.html).

[](<>)**识别数据节点。**这`节点 ID`要么`Id`value（即数据节点标识符）可以在节点启动时在命令行中分配，也可以在配置文件中分配。

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

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 未签名 |
    | 默认 | [...] |
    | 范围 | 1 - 48 |
    | 版本（或更高版本） | 新开发银行 8.0.18 |
    | 类型或单位 | 未签名 |
    | 默认 | [...] |
    | 范围 | 1 - 144 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 是（新开发银行 8.0.13） |

    唯一的节点 ID 用作所有集群内部消息的节点地址。对于数据节点，这是一个介于 1 到 144 之间的整数。集群中的每个节点都必须有一个唯一的标识符。

    `节点 ID`是识别数据节点时唯一受支持的参数名称。

-   [](<>) `执行计算机`

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 姓名 |
    | 默认 | [...] |
    | 范围 | ... |
    | 已弃用 | 是（在 NDB 7.5 中） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 小号（新开发银行 8.0.13） |

    这是指`Id`为 a 中定义的其中一台计算机设置`[计算机]`部分。

    重要的

    此参数已弃用，并且可能会在将来的版本中删除。使用[`主机名`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-hostname)改为参数。

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

    该节点的节点 ID 只能提供给明确请求它的连接。请求“任何”节点 ID 的管理服务器不能使用这个。在同一主机上运行多个管理服务器时可以使用此参数，并且[`主机名`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-hostname)不足以区分进程。用于测试。

-   [](<>) `主机名`

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 名称或 IP 地址 |
    | 默认 | 本地主机 |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    指定此参数定义数据节点将驻留的计算机的主机名。指定除主机名以外的主机名`本地主机`, 此参数或`执行计算机`是必须的。

-   [](<>) [`服务器端口`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-serverport)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 未签名 |
    | 默认 | [...] |
    | 范围 | 1 - 64K |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 小号（新开发银行 8.0.13） |

    集群中的每个节点都使用一个端口连接到其他节点。默认情况下，此端口是动态分配的，以确保同一主机上的任何两个节点都不会接收相同的端口号，因此通常不需要为此参数指定值。

    但是，如果您需要能够在防火墙中打开特定端口以允许数据节点和 API 节点（包括 SQL 节点）之间的通信，则可以将此参数设置为所需端口的编号。`[ndbd]`部分或（如果您需要对多个数据节点执行此操作）`[ndbd 默认]`的部分`配置文件`文件，然后为来自 SQL 节点、API 节点或两者的传入连接打开具有该编号的端口。

    笔记

    从数据节点到管理节点的连接是使用[**数据库\_管理**](mysql-cluster-programs-ndb-mgmd.html)管理端口（管理服务器的[`端口号`](mysql-cluster-mgm-definition.html#ndbparam-mgmd-portnumber)) 因此应始终允许从任何数据节点到该端口的传出连接。

-   [](<>) `TcpBind_INADDR_ANY`

    将此参数设置为`真的`要么`1`绑定`IP_ADDR_ANY`以便可以从任何地方进行连接（对于自动生成的连接）。默认是`错误的`(`0`）。

-   [](<>) [`节点组`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nodegroup)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 未签名 |
    | 默认 | [...] |
    | 范围 | 0 - 65536 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 是（新开发银行 8.0.13） |

    此参数可用于将数据节点分配给特定节点组。集群第一次启动时只读，不能在线将数据节点重新分配到不同的节点组。通常不希望在`[ndbd 默认]`的部分`配置文件`文件，并且必须注意不要将节点分配给节点组，从而将无效数量的节点分配给任何节点组。

    这[`节点组`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nodegroup)参数主要用于将新节点组添加到正在运行的 NDB Cluster 而无需执行滚动重启。为此，您应该将其设置为 65536（最大值）。您无需设置[`节点组`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nodegroup)所有集群数据节点的值，仅适用于稍后将作为新节点组启动并添加到集群中的那些节点。有关详细信息，请参阅[第 23.6.7.3 节，“在线添加 NDB Cluster 数据节点：详细示例”](mysql-cluster-online-add-node-example.html).

-   [](<>) [`位置域 ID`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-locationdomainid)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 整数 |
    | 默认 | 0 |
    | 范围 | 0 - 16 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 小号（新开发银行 8.0.13） |

    将数据节点分配给特定的[可用性域](https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm)（也称为可用区）在云中。通过告知`新开发银行`哪些节点在哪些可用性域中，可以通过以下方式在云环境中提高性能：

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

    -   不同可用性域中的节点之间的通信保证使用`新开发银行`运输商的 WAN 支持，无需任何进一步的人工干预。

    -   传输器的组号可以基于使用哪个可用性域，这样 SQL 和其他 API 节点也尽可能与同一可用性域中的本地数据节点通信。

    -   仲裁器可以从不存在数据节点的可用性域中选择，或者如果找不到这样的可用性域，则可以从第三个可用性域中选择。

    `位置域 ID`取 0 到 16 之间的整数值，默认值为 0；使用 0 与未设置参数相同。

-   [](<>) [`副本数`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-noofreplicas)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 整数 |
    | 违约 | 2. |
    | 范围 | 1 - 2 |
    | 版本（或更高版本） | NDB 8.0.19 |
    | 类型或单位 | 整数 |
    | 违约 | 2. |
    | 范围 | 1 - 4 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IS（NDB 8.0.13） |

    此全局参数只能在`[ndbd默认值]`节，并为集群中存储的每个表定义片段副本的数量。此参数还指定节点组的大小。节点组是存储相同信息的一组节点。

    节点组是隐式形成的。第一个节点组由具有最低节点ID的数据节点集组成，下一个节点组由下一个最低节点标识集组成，依此类推。举个例子，假设我们有4个数据节点`无皱襞`设置为2。这四个数据节点具有节点ID 2、3、4和5。然后，第一个节点组由节点2和3组成，第二个节点组由节点4和5组成。重要的是，要以这样一种方式配置集群：相同节点组中的节点不放在同一台计算机上，因为单个硬件故障会导致整个集群故障。

    如果未提供节点ID，则数据节点的顺序是节点组的决定因素。无论是否进行了明确的分配，都可以在管理客户的[`显示`](mysql-cluster-mgm-client-commands.html#ndbclient-show)命令

    的默认值`无皱襞`是2。这是大多数生产环境的建议值。在NDB 8.0中，将此参数的值设置为3或4在生产中得到了充分的测试和支持。

    警告

    背景`无皱襞`到1意味着所有集群数据只有一个副本；在这种情况下，单个数据节点的丢失会导致集群失败，因为该节点存储的数据没有其他副本。

    群集中的数据节点数必须能被此参数的值平均整除。例如，如果有两个数据节点，则[`无皱襞`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-noofreplicas)必须等于1或2，因为2/3和2/4都产生分数；如果有四个数据节点，则`无皱襞`必须等于1、2或4。

-   [](<>) `数据目录`

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 路径 |
    | 违约 | . |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    此参数指定放置跟踪文件、日志文件、pid文件和错误日志的目录。

    默认为数据节点进程工作目录。

-   [](<>) [`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempath)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 路径 |
    | 违约 | 数据目录 |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    此参数指定为元数据、重做日志、撤消日志（用于磁盘数据表）和数据文件创建的所有文件所在的目录。默认值是由指定的目录`数据目录`.

    笔记

    此目录必须在[**ndbd**](mysql-cluster-programs-ndbd.html)该过程已启动。

    建议的NDB群集目录层次结构包括`/var/lib/mysql集群`，在该目录下创建节点文件系统的目录。此子目录的名称包含节点ID。例如，如果节点ID为2，则将命名此子目录`ndb_2_fs`.

-   [](<>) [`反向更新`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupdatadir)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 路径 |
    | 违约 | 文件系统 |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    此参数指定放置备份的目录。

    重要的

    绳子`/后援`'始终附加到此值。例如，如果设置[`反向更新`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupdatadir)到`/var/lib/cluster数据`，则所有备份都存储在`/var/lib/集群数据/备份`.这也意味着*有效的*默认备份位置是名为`备份`在[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempath)参数

##### 数据内存、索引内存和字符串内存

[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)和[`索引记忆`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexmemory)是`[ndbd]`指定用于存储实际记录及其索引的内存段大小的参数。在为这些设置值时，了解如何[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)使用，因为它通常需要更新以反映集群的实际使用情况。

笔记

`索引记忆`已弃用，可能会在未来版本的NDB Cluster中删除。有关更多信息，请参阅下面的说明。

-   [](<>) [`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 98M |
    | 范围 | 1M-1T |
    | 版本（或更高版本） | NDB 8.0.19 |
    | 类型或单位 | 字节 |
    | 违约 | 98M |
    | 范围 | 1M-16T |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数定义可用于存储数据库记录的空间量（字节）。该值指定的全部内存量都分配在内存中，因此机器有足够的物理内存来容纳它是非常重要的。

    所分配的内存[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)用于存储实际记录和索引。每条记录都有16字节的开销；由于每条记录存储在32KB的页面中，页面开销为128字节（见下文），因此会产生额外的费用。由于每个记录只存储在一个页面中，因此每页也有少量的浪费。

    对于可变大小的表属性，数据存储在单独的数据页上，从[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory).可变长度记录使用固定大小的部分（额外开销为4字节）来引用可变大小部分。可变大小部分的开销为2字节，每个属性加上2字节。

    在NDB 8.0中，最大记录大小为30000字节。

    分配给`数据存储器`用于存储所有数据和索引。（任何配置为`索引记忆`将自动添加到`数据存储器`形成一个公共资源池。）

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

    目前，NDB Cluster每个分区最多可以使用512 MB的哈希索引，这意味着在某些情况下，即使在[**ndb\_米高梅-e“所有报告备忘录”**](mysql-cluster-programs-ndb-mgm.html)显示出显著的免费[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)。这也可能会导致数据节点在数据负载较重的节点上重新启动时出现问题。

    通过设置`NDB_表`选项`分区平衡`对其中一个价值观`由LDM提供`, `由_LDM_X_2为_RA_`, `由_LDM_X_3为_RA_`或`由_LDM_X_4为_RA_`，分别用于创建表时每个LDM的1、2、3或4个分区（请参见[第13.1.20.11节，“设置NDB注释选项”](create-table-ndb-comment-options.html)).

    笔记

    在以前版本的NDB Cluster中，可以使用`最大排数`选择[`创建表格`](create-table.html).虽然仍支持向后兼容，但使用`最大排数`为此，不推荐使用；你应该使用`分区平衡`相反

    你也可以使用[`MinFreePct`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-minfreepct)用于帮助避免节点重新启动问题的配置参数。

    所分配的内存空间[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)由32KB的页面组成，这些页面分配给表片段。每个表通常被划分为与集群中的数据节点数量相同的片段。因此，对于每个节点，都有与中设置的相同数量的片段[`无皱襞`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-noofreplicas).

    一旦分配了一个页面，当前无法将其返回到空闲页面池，除非删除该表。（这也意味着[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)页面一旦分配给给定的表，就不能被其他表使用。）执行数据节点恢复也会压缩分区，因为所有记录都会从其他活动节点插入到空分区中。

    [](<>)

    这个[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)内存空间还包含撤销信息：对于每次更新，在[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)。在有序表索引中还有对每个副本的引用。只有在更新唯一索引列时，才会更新唯一哈希索引，在这种情况下，索引表中插入一个新条目，并在提交时删除旧条目。因此，还需要分配足够的内存来处理使用集群的应用程序执行的最大事务。在任何情况下，执行一些大型事务都不会比使用许多小型事务有任何优势，原因如下：

    -   大型交易并不比小型交易快

    -   大型事务会增加丢失的操作数量，并且在事务失败时必须重复

    -   大型事务会占用更多内存

        的默认值[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)在NDB中，8.0是98MB。最小值为1MB。没有最大大小，但实际上必须调整最大大小，以便在达到限制时进程不会开始交换。该限制由机器上可用的物理RAM量和操作系统可能提交给任何一个进程的内存量决定。32位操作系统通常限制为2位−每个进程4GB；64位操作系统可以使用更多。因此，对于大型数据库，最好使用64位操作系统。

-   [](<>) [`索引记忆`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexmemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 0 |
    | 范围 | 1M-1T |
    | 反对 | 是（在NDB 7.6中） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    这个`索引记忆`参数已弃用（并将在将来删除）；任何分配给`索引记忆`而是分配到与[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)，它全权负责在内存中存储数据和索引所需的所有资源。在NDB 8.0中，使用`索引记忆`在群集配置文件中，会触发来自管理服务器的警告。

    可以使用以下公式估计哈希索引的大小：

    ```
      size  = ( (fragments * 32K) + (rows * 18) )
              * fragment_replicas
    ```

    *`碎片`*是碎片的数量，*`碎片复制品`*是片段副本的数量（通常为2），以及*`排`*是行数。如果一个表有一百万行、八个片段和两个片段副本，那么预期的索引内存使用量计算如下所示：

    ```
      ((8 * 32K) + (1000000 * 18)) * 2 = ((8 * 32768) + (1000000 * 18)) * 2
      = (262144 + 18000000) * 2
      = 18262144 * 2 = 36524288 bytes = ~35MB
    ```

    有序索引（启用时）的索引统计信息存储在`mysql。ndb_指数_统计样本`桌子因为这个表有一个散列索引，这增加了索引内存的使用。给定有序索引的行数上限可按如下方式计算：

    ```
      sample_size= key_size + ((key_attributes + 1) * 4)

      sample_rows = IndexStatSaveSize
                    * ((0.01 * IndexStatSaveScale * log2(rows * sample_size)) + 1)
                    / sample_size
    ```

    在前面的公式中，*`钥匙尺寸`*是有序索引键的大小，以字节为单位，*`关键属性`*是有序索引键中的属性数，以及*`排`*是基表中的行数。

    假设那张桌子`t1`有100万行和一个名为`ix1`在两个四字节整数上。另外假设[`IndexStatSaveSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatsavesize)和[`IndexStatSaveScale`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatsavescale)设置为默认值（分别为32K和100）。使用前两个公式，我们可以计算如下：

    ```
      sample_size = 8  + ((1 + 2) * 4) = 20 bytes

      sample_rows = 32K
                    * ((0.01 * 100 * log2(1000000*20)) + 1)
                    / 20
                    = 32768 * ( (1 * ~16.811) +1) / 20
                    = 32768 * ~17.811 / 20
                    = ~29182 rows
    ```

    因此，预期的索引内存使用率为2\* 18 \* 29182 = ~1050550字节。

    在NDB 8.0中，该参数的最小值和默认值为0（零）。

-   [](<>) [`StringMemory`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-stringmemory)

     [](<>)

     [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | %或字节 |
    | 违约 | 25 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | S（NDB 8.0.13） |

    此参数确定为表名等字符串分配的内存量，并在`[ndbd]`或`[ndbd默认值]`部分`配置。伊尼`文件介于`0`和`100`inclusive被解释为最大默认值的百分比，该值是基于多个因素计算的，包括表的数量、最大表名大小、表的最大大小`.FRM`文件夹，[`MaxNoOfTriggers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftriggers)，最大列名大小和最大默认列值。

    大于`100`被解释为字节数。

    默认值为25，即默认最大值的25%。

    在大多数情况下，默认值应该足够了，但是当你有很多`NDB`表（1000或更多），可能会从字符串内存中获取错误773，请修改StringMemory配置参数：Permanent Error:Schema Error，在这种情况下，您应该增加该值。`25`（25%）并不过度，应防止在除最极端情况外的所有情况下再次出现这种错误。

    下面的示例说明了如何将内存用于表。考虑这个表定义：


```
CREATE TABLE example (
  a INT NOT NULL,
  b INT NOT NULL,
  c INT NOT NULL,
  PRIMARY KEY(a),
  UNIQUE(b)
) ENGINE=NDBCLUSTER;
```

对于每条记录，有12字节的数据加上12字节的开销。没有可为空的列可以节省4字节的开销。此外，我们在列上有两个有序索引`A.`和`b`每条记录大约消耗10字节。基表上有一个主键散列索引，每个记录大约使用29字节。唯一约束由一个单独的表实现，该表带有`b`作为主键和`A.`作为专栏。另一个表中的每个记录额外消耗29字节的索引内存`实例`表以及8字节的记录数据加上12字节的开销。

因此，对于一百万条记录，我们需要58MB的索引内存来处理主键和唯一约束的哈希索引。我们还需要64MB来存储基表和唯一索引表的记录，以及两个有序索引表。

可以看到散列索引占用了相当多的内存空间；然而，作为回报，它们提供了对数据的快速访问。它们还用于NDB集群中处理唯一性约束。

目前，唯一的分区算法是散列，有序索引是每个节点的局部索引。因此，在一般情况下，有序索引不能用于处理唯一性约束。

这两点都很重要[`索引记忆`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexmemory)和[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)总数据库大小是每个节点组的所有数据内存和所有索引内存的总和。每个节点组用于存储复制的信息，因此，如果有四个节点具有两个片段副本，则有两个节点组。因此，可用的总数据存储器为2倍[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)对于每个数据节点。

强烈建议[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)和[`索引记忆`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexmemory)为所有节点设置相同的值。数据分布甚至覆盖集群中的所有节点，因此任何节点的最大可用空间量不能大于集群中最小节点的最大可用空间量。

[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)可以改变，但降低风险；这样做很容易导致节点甚至整个NDB群集由于内存空间不足而无法重新启动。增加这些值应该是可以接受的，但建议以与软件升级相同的方式执行此类升级，首先更新配置文件，然后重新启动管理服务器，然后依次重新启动每个数据节点。

[](<>)**MinFreePct。**  [](<>)数据节点资源的比例（默认为5%），包括[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)保留以确保数据节点在执行重新启动时不会耗尽其内存。可以使用[`MinFreePct`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-minfreepct)数据节点配置参数（默认值5）。

[](<>)

| 版本（或更高版本） | NDB 8.0.13 |
| --------- | ---------- |
| 类型或单位 | 未签名 |
| 违约 | 5. |
| 范围 | 0 - 100 |
| [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

更新不会增加索引内存的使用量。插入立即生效；但是，在提交事务之前，实际上不会删除行。

[](<>)**事务参数。**接下来的几天`[ndbd]`我们讨论的参数很重要，因为它们影响并行事务的数量和系统可以处理的事务的大小。[`MaxNoOfConcurrentTransactions`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrenttransactions)设置节点中可能的并行事务数。[`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations)设置可以处于更新阶段或同时锁定的记录数。

这两个参数（尤其是[`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations))可能是用户设置特定值而不使用默认值的目标。为使用小型事务的系统设置默认值，以确保这些事务不会使用过多内存。

[`MaxDmloperationsPertTransaction`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdmloperationspertransaction)设置在给定事务中可以执行的最大DML操作数。

-   [](<>) [`MaxNoOfConcurrentTransactions`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrenttransactions)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 4096 |
    | 范围 | 32-4294967039（0xFFFFFEFF） |
    | 反对 | NDB 8.0.19 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    每个集群数据节点都需要集群中每个活动事务的事务记录。协调事务的任务分布在所有数据节点之间。集群中的事务记录总数是任何给定节点中的事务数乘以集群中的节点数。

    事务记录被分配给各个MySQL服务器。到MySQL服务器的每个连接都需要至少一个事务记录，以及该连接访问的每个表的额外事务对象。这意味着集群中事务总数的合理最小值可以表示为

    ```
    TotalNoOfConcurrentTransactions =
        (maximum number of tables accessed in any single transaction + 1)
        * number of SQL nodes
    ```

    假设有10个SQL节点在使用集群。涉及10个表的单个联接需要11个事务记录；如果一个事务中有10个这样的连接，那么\*11=此事务需要110个事务记录（每个MySQL服务器）或110个\*10=总共1100条交易记录。每个数据节点都可以处理TotalNoOfConcurrentTransactions/数据节点数。对于具有4个数据节点的NDB群集，这意味着`MaxNoOfConcurrentTransactions`在每个数据节点上设置为1100/4=275。此外，您应该通过确保单个节点组可以容纳所有并发事务来提供故障恢复；换句话说，每个数据节点的MaxNoOfConcurrentTransactions足以覆盖相当于TotalNoOfConcurrentTransactions/节点组数量的事务。如果这个集群只有一个节点组，那么`MaxNoOfConcurrentTransactions`应设置为1100（与整个集群的并发事务总数相同）。

    此外，每笔交易至少涉及一项操作；因此，为`MaxNoOfConcurrentTransactions`应该始终不超过[`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations).

    对于所有群集数据节点，此参数必须设置为相同的值。这是因为，当数据节点发生故障时，最老的幸存节点会重新创建故障节点中正在进行的所有事务的事务状态。

    可以使用滚动重新启动来更改此值，但集群上的通信量必须确保在进行此操作时，不会发生比新旧级别更低的事务。

    默认值为4096。

-   [](<>) [`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 32K |
    | 范围 | 32-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    最好根据事务的大小和数量调整此参数的值。当执行只涉及少数操作和记录的事务时，此参数的默认值通常足够。执行涉及许多记录的大型交易通常需要增加其价值。

    在事务协调器和执行实际更新的节点中，为更新集群数据的每个事务保留记录。这些记录包含查找用于回滚、锁定队列和其他目的的撤消记录所需的状态信息。

    此参数应至少设置为事务中同时更新的记录数除以群集数据节点数。例如，在一个有四个数据节点且预期将使用事务处理一百万个并发更新的集群中，应该将该值设置为1000000/4=250000。为了帮助提供故障恢复能力，建议将此参数设置为足够高的值，以允许单个数据节点处理其节点组的负载。换句话说，您应该将该值设置为`并发操作总数/节点组数`（在存在单个节点组的情况下，这与整个集群的并发操作总数相同。）

    因为每个事务总是至少涉及一个操作，所以`MaxNoOfConcurrentOperations`应始终大于或等于[`MaxNoOfConcurrentTransactions`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrenttransactions).

    设置锁的读取查询也会导致创建操作记录。在单个节点内分配一些额外的空间，以适应在节点上分布不完美的情况。

    当查询使用唯一散列索引时，事务中的每条记录实际上使用了两条操作记录。第一条记录表示索引表中的读取，第二条记录处理基表上的操作。

    默认值为32768。

    这个参数实际上处理两个可以单独配置的值。其中第一个指定要向事务协调器放置多少操作记录。第二部分指定数据库本地的操作记录数量。

    在八节点集群上执行的非常大的事务需要事务协调器中的操作记录与事务中涉及的读取、更新和删除数量相同。但是，的操作记录分布在所有八个节点上。因此，如果需要为一个非常大的事务配置系统，最好分别配置这两个部分。[`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations)始终用于计算节点的事务协调器部分中的操作记录数。

    了解操作记录的内存需求也很重要。每个记录大约消耗1KB。

-   [](<>) [`MaxNoOfLocalOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooflocaloperations)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 未定义 |
    | 范围 | 32-4294967039（0xFFFFFEFF） |
    | 反对 | NDB 8.0.19 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    默认情况下，该参数计算为1.1×1[`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations)。这适用于具有多个同时事务的系统，其中没有一个事务非常大。如果需要一次处理一个非常大的事务，并且有许多节点，那么最好通过显式指定此参数来覆盖默认值。

    NDB 8.0中不推荐使用此参数，在未来的NDB群集版本中可能会删除此参数。此外，此参数与[`事务存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactionmemory)参数如果尝试在群集配置文件中为这两个参数设置值(`配置。伊尼`)，管理服务器拒绝启动。

-   [](<>) [`MaxDmloperationsPertTransaction`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdmloperationspertransaction)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 运营（DML） |
    | 违约 | 4294967295 |
    | 范围 | 32 - 4294967295 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数限制事务的大小。如果事务需要的DML操作超过此数量，则会中止该事务。每笔交易的最小操作数为32；但是，您可以设置`MaxDmloperationsPertTransaction`设置为0以禁用对每个事务的DML操作数的任何限制。最大值（默认值）为4294967295。

    此参数的值不能超过[`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations).

[](<>)**事务临时存储。**下一套`[ndbd]`参数用于在执行作为集群事务一部分的语句时确定临时存储。当语句完成且集群正在等待提交或回滚时，所有记录都将被释放。

这些参数的默认值适用于大多数情况。但是，需要支持涉及大量行或操作的事务的用户可能需要增加这些值，以便在系统中实现更好的并行性，而应用程序需要相对较小事务的用户可以减少这些值以节省内存。

-   [](<>) [`MaxNoOfConcurrentIndexOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentindexoperations)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 8K |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 反对 | NDB 8.0.19 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    对于使用唯一哈希索引的查询，在查询的执行阶段使用另一组临时操作记录。此参数设置记录池的大小。因此，该记录仅在执行查询的一部分时分配。一旦这一部分被执行，记录就会被发布。处理中止和提交所需的状态由正常操作记录处理，其中池大小由参数设置[`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations).

    此参数的默认值为8192。只有在极少数情况下，使用唯一哈希索引的并行性极高，才有必要增加该值。如果DBA确定集群不需要高度并行，则可以使用较小的值，并可以节省内存。

    NDB 8.0中不推荐使用此参数，在未来的NDB群集版本中可能会删除此参数。此外，此参数与[`事务存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactionmemory)参数如果尝试在群集配置文件中为这两个参数设置值(`配置。伊尼`)，管理服务器拒绝启动。

-   [](<>) [`MaxNoOffifiedTriggers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooffiredtriggers)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 4000 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 反对 | NDB 8.0.19 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    的默认值[`MaxNoOffifiedTriggers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooffiredtriggers)是4000，这对于大多数情况都足够了。在某些情况下，如果DBA确信集群中对并行性的需求不高，甚至可以降低并行性。

    当执行影响唯一哈希索引的操作时，将创建记录。在具有唯一散列索引的表中插入或删除记录，或更新作为唯一散列索引一部分的列，将触发索引表中的插入或删除操作。生成的记录用于表示这个索引表操作，同时等待触发它的原始操作完成。此操作的寿命很短，但在包含一组唯一哈希索引的基表上有许多并行写入操作的情况下，仍可能需要池中有大量记录。

    NDB 8.0中不推荐使用此参数，在未来的NDB群集版本中可能会删除此参数。此外，此参数与[`事务存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactionmemory)参数如果尝试在群集配置文件中为这两个参数设置值(`配置。伊尼`)，管理服务器拒绝启动。

-   [](<>) [`事务缓冲存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactionbuffermemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 1米 |
    | 范围 | 1K-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    受此参数影响的内存用于跟踪更新索引表和读取唯一索引时触发的操作。该内存用于存储这些操作的键和列信息。该参数的值很少需要更改为默认值。

    的默认值[`事务缓冲存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactionbuffermemory)是1MB。

    正常的读写操作使用类似的缓冲区，其使用寿命甚至更短。编译时参数`ZATTRBUF_文件大小`（发现于`ndb/src/kernel/blocks/Dbtc/Dbtc。水电站`)设置为4000×128字节（500KB）。类似的关键信息缓冲区，`ZDATABUF_文件大小`（也在`Dbtc。水电站`)包含4000×16=62.5KB的缓冲空间。`Dbtc`是处理事务协调的模块。

[](<>)**事务资源分配参数。**下表中的参数用于在事务协调器中分配事务资源([`DBTC`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbtc.html))。将其中任何一个设置为默认值（0）将为相应资源的估计总数据节点使用量的25%专用事务内存。这些参数的实际最大可能值通常受到数据节点可用内存量的限制；设置它们不会影响分配给数据节点的内存总量。此外，您应该记住，它们控制数据节点的保留内部记录的数量，而不依赖于数据节点的任何设置[`MaxDmloperationsPertTransaction`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdmloperationspertransaction), [`MaxNoOfConcurrentIndexOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentindexoperations), [`MaxNoOfConcurrentOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations), [`MaxNoOfConcurrentScans`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentscans), [`MaxNoOfConcurrentTransactions`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrenttransactions), [`MaxNoOffifiedTriggers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooffiredtriggers), [`MaxNoolocalScans`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooflocalscans)或[`事务缓冲存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactionbuffermemory)（见[事务参数](mysql-cluster-ndbd-definition.html#mysql-cluster-transaction-parameters)和[事务临时存储](mysql-cluster-ndbd-definition.html#mysql-cluster-transaction-temporary-storage)).

-   [](<>) [`保留的ConcurrentIndexOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-reservedconcurrentindexoperations)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.16 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 补充 | NDB 8.0.16 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在一个数据节点上具有专用资源的同时索引操作数。

-   [](<>) [`预留现金操作`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-reservedconcurrentoperations)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.16 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 补充 | NDB 8.0.16 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在一个数据节点上的事务协调器中具有专用资源的同时操作数。

-   [](<>) [`ReservedConcurrentScans`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-reservedconcurrentscans)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.16 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 补充 | NDB 8.0.16 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在一个数据节点上具有专用资源的同时扫描数。

-   [](<>) [`ReservedConcurrentTransactions`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-reservedconcurrenttransactions)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.16 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 补充 | NDB 8.0.16 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在一个数据节点上具有专用资源的同时事务数。

-   [](<>) [`ReservedRedTriggers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-reservedfiredtriggers)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.16 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 补充 | NDB 8.0.16 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在一个ndbd（DB）节点上具有专用资源的触发器数。

-   [](<>) [`保留的局部扫描`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-reservedlocalscans)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.16 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 补充 | NDB 8.0.16 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在一个数据节点上具有专用资源的同时进行片段扫描的数量。

-   [](<>) [`ReservedTransactionBufferMemory`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-reservedtransactionbuffermemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.16 |
    | --------- | ------------ |
    | 类型或单位 | 数字 |
    | 默认 | 0 |
    | 范围 | 0 - 4294967039 (0xFFFFFEFF) |
    | 添加 | 新开发银行 8.0.16 |
    | 已弃用 | 新开发银行 8.0.19 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    分配给每个数据节点的键和属性数据的动态缓冲区空间（以字节为单位）。

-   [](<>) [`事务内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactionmemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.19 |
    | --------- | ------------ |
    | 类型或单位 | 字节 |
    | 默认 | 0 |
    | 范围 | 0 - 16384G |
    | 添加 | 新开发银行 8.0.19 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数确定为每个数据节点上的事务分配的内存（以字节为单位）。可以通过此处列出的三种方式中的任何一种来处理事务内存的设置：

    -   许多配置参数不兼容`事务内存`.如果设置了其中任何一个，则事务内存将按照 NDB 8.0 之前的方式计算。您应该知道，不能同时设置任何这些参数`事务内存`;如果您尝试这样做，管理服务器将无法启动（请参阅[与 TransactionMemory 不兼容的参数](mysql-cluster-ndbd-definition.html#mysql-cluster-transactionmemory-incompatible)）。

    -   如果`事务内存`已设置，此值用于确定事务内存。

    -   如果既没有设置任何不兼容的参数，也没有`事务内存`设置，事务内存由设置`新开发银行`为价值的 10%[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)配置参数。

    [](<>)**与 TransactionMemory 不兼容的参数。**以下参数不能与`事务内存`并在 NDB 8.0 中被弃用：

    -   [`MaxNoOfConcurrentIndexOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentindexoperations)

    -   [`MaxNoOfFiredTriggers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooffiredtriggers)

    -   [`MaxNoOfLocalOperations`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooflocaloperations)

    -   [`MaxNoOfLocalScans`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooflocalscans)

        显式设置刚刚列出的任何参数`事务内存`也已在集群配置文件中设置（`配置文件`) 使管理节点无法启动。

        有关 NDB Cluster 数据节点中资源分配的更多信息，请参阅[第 23.4.3.13 节，“数据节点内存管理”](mysql-cluster-data-node-memory-management.html).

[](<>)**扫描和缓冲。**还有额外的`[ndbd]`中的参数`数据库`模块（在`ndb/src/kernel/blocks/Dblqh/Dblqh.hpp`) 影响读取和更新。这些包括`ZATTRINBUF_FILESIZE`, 默认设置为 10000 × 128 字节 (1250KB) 和`ZDATABUF_FILE_SIZE`, 默认设置为 10000\*16 字节（大约 156KB）的缓冲区空间。迄今为止，既没有来自用户的任何报告，也没有来自我们自己的广泛测试的任何结果表明应该增加这些编译时间限制中的任何一个。

-   [](<>) [`BatchSizePerLocalScan`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-batchsizeperlocalscan)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 整数 |
    | 默认 | 256 |
    | 范围 | 1 - 992 |
    | 已弃用 | 新开发银行 8.0.19 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    该参数用于计算用于处理并发扫描操作的锁定记录数。

    `BatchSizePerLocalScan`有很强的联系[`批量大小`](mysql-cluster-api-definition.html#ndbparam-api-batchsize)在 SQL 节点中定义。

    在 NDB 8.0 中已弃用。

-   [](<>) [`长消息缓冲区`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-longmessagebuffer)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 字节 |
    | 默认 | 64M |
    | 范围 | 512K - 4294967039 (0xFFFFFEFF) |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    这是一个内部缓冲区，用于在单个节点内和节点之间传递消息。默认值为 64MB。

    此参数很少需要更改默认值。

-   [](<>) [`MaxFKBuildBatchSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxfkbuildbatchsize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 整数 |
    | 默认 | 64 |
    | 范围 | 16 - 512 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    用于生成外键的最大扫描批大小。增加此参数的设置值可能会加快外键生成的速度，但会对正在进行的流量产生更大的影响。

-   [](<>) [`MaxNoOfConcurrentScans`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentscans)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 256 |
    | 范围 | 2 - 500 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数用于控制可在群集中执行的并行扫描数。每个事务协调器都可以处理为此参数定义的并行扫描数。每个扫描查询都是通过并行扫描所有分区来执行的。每个分区扫描都会在分区所在的节点中使用一条扫描记录，记录数是该参数的值乘以节点数。集群应该能够维持[`MaxNoOfConcurrentScans`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentscans)从群集中的所有节点同时扫描。

    扫描实际上是在两种情况下进行的。第一种情况发生在不存在哈希或有序索引来处理查询时，在这种情况下，通过执行完整表扫描来执行查询。第二种情况是，没有支持查询的哈希索引，但有一个有序索引。使用有序索引意味着执行并行范围扫描。该顺序仅在本地分区上保持，因此有必要对所有分区执行索引扫描。

    的默认值[`MaxNoOfConcurrentScans`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentscans)是256。最大值为500。

-   [](<>) [`MaxNoolocalScans`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooflocalscans)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 4.\*MaxNoOfConcurrentScans\* [#数据节点数量] + 2 |
    | 范围 | 32-4294967039（0xFFFFFEFF） |
    | 反对 | NDB 8.0.19 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    如果许多扫描未完全并行，则指定本地扫描记录的数量。当未提供本地扫描记录数时，其计算如下所示：

    ```
    4 * MaxNoOfConcurrentScans * [# data nodes] + 2
    ```

    NDB 8.0中不推荐使用此参数，在未来的NDB群集版本中可能会删除此参数。此外，此参数与[`事务存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactionmemory)参数如果尝试在群集配置文件中为这两个参数设置值(`配置。伊尼`)，管理服务器拒绝启动。

-   [](<>) [`MaxParallelCopyInstances`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxparallelcopyinstances)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0 - 64 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数设置在节点重新启动或系统重新启动的复制阶段中使用的并行化，即当前刚刚启动的节点通过复制节点中最新的任何更改记录与已具有当前数据的节点同步。因为在这种情况下完全并行可能会导致过载情况，`MaxParallelCopyInstances`提供了一种减少它的方法。此参数的默认值为0。该值意味着有效并行度等于节点中刚启动的LDM实例数以及节点更新的LDM实例数。

-   [](<>) [`MaxParallelScansPerFragment`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxparallelscansperfragment)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 256 |
    | 范围 | 1-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    可以配置最大并行扫描数([`塔普`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbtup.html)扫描和[`晚礼服`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbtux.html)扫描）在开始排队进行串行处理之前允许。在并行执行大量扫描时，您可以增加该值，以利用任何未使用的CPU，并提高其性能。

-   [](<>) [`MaxReorgBuildBatchSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxreorgbuildbatchsize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 64 |
    | 范围 | 16 - 512 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    用于重组表分区的最大扫描批大小。增加此参数的设置值可能会加快重组，但会对正在进行的通信造成更大的影响。

-   [](<>) [`MaxUIBuildBatchSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxuibuildbatchsize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 64 |
    | 范围 | 16 - 512 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    用于生成唯一密钥的最大扫描批大小。增加此参数的设置值可能会加快此类构建，但会对正在进行的流量产生更大的影响。

##### 内存分配

[](<>) [`最大分配`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxallocate)

[](<>)

[](<>)

| 版本（或更高版本） | NDB 8.0.13 |
| --------- | ---------- |
| 类型或单位 | 未签名 |
| 违约 | 32M |
| 范围 | 1M-1G |
| 反对 | NDB 8.0.27 |
| [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

此参数用于旧版本的NDB Cluster，但在NDB 8.0中无效。从NDB 8.0.27开始，它就被弃用，并可能在未来的版本中被删除。

##### 多个运输机

从8.0.20版开始，`NDB`为数据节点对之间的通信分配多个传输程序。这样分配的传输机数量可以通过为`节点组转运体`该版本中引入的参数。

[](<>) [`节点组转运体`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nodegrouptransporters)

[](<>)

[](<>)

| 版本（或更高版本） | NDB 8.0.20 |
| --------- | ---------- |
| 类型或单位 | 整数 |
| 违约 | 0 |
| 范围 | 0 - 32 |
| 补充 | NDB 8.0.20 |
| [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

此参数确定同一节点组中节点之间使用的传输程序的数量。默认值（0）表示使用的传输程序数与节点中的LDM数相同。对于大多数用例来说，这应该足够了；因此，几乎不需要更改该值的默认值。

背景`节点组转运体`大于LDM线程数或TC线程数（以较高者为准）的数字会导致`NDB`使用这两个线程的最大数量。这意味着大于该值的值实际上会被忽略。

##### 哈希映射大小

[](<>) [`DefaultHashMapSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-defaulthashmapsize)

[](<>)

[](<>)

| 版本（或更高版本） | NDB 8.0.13 |
| --------- | ---------- |
| 类型或单位 | LDM线程 |
| 违约 | 240 |
| 范围 | 0 - 3840 |
| [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

该参数最初的预期用途是方便升级，尤其是从具有不同默认哈希映射大小的非常旧的版本进行降级。从NDB Cluster 7.3（或更高版本）升级到更高版本时，这不是问题。

使用创建或修改任何表后联机减少此参数`DefaultHashMapSize`当前不支持等于3840。

[](<>)**日志和检查点。**下面`[ndbd]`参数控制日志和检查点行为。

-   [](<>) [`碎片日志文件大小`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-fragmentlogfilesize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 16M |
    | 范围 | 4M-1G |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    通过设置此参数，可以直接控制重做日志文件的大小。当NDB集群在高负载下运行，并且在尝试打开新的片段日志文件之前无法足够快地关闭片段日志文件（一次只能打开2个片段日志文件）时，这可能非常有用；增加片段日志文件的大小可以让集群在打开每个新的片段日志文件之前有更多的时间。此参数的默认值为16M。

    有关片段日志文件的更多信息，请参阅[`NooffFragmentLogFiles`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nooffragmentlogfiles).

-   [](<>) [`InitialNoOfOpenFiles`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initialnoofopenfiles)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 文件夹 |
    | 违约 | 27 |
    | 范围 | 20-4294967039（0xfffffeff） |
    | [重新启动类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数设置要为打开的文件分配的内部线程的初始数目。

    默认值为27。

-   [](<>) [`InitFragmentLogFiles`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initfragmentlogfiles)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | [见值] |
    | 违约 | 稀疏的 |
    | 范围 | 稀疏的，满的 |
    | [重新启动类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 在（NDB 8.0.13） |

    默认情况下，当执行数据节点的初始启动时，会稀疏地创建碎片日志文件——也就是说，根据正在使用的操作系统和文件系统，并非所有字节都需要写入磁盘。但是，可以通过此参数重写此行为并强制写入所有字节，而不管使用的平台和文件系统类型如何。[`InitFragmentLogFiles`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initfragmentlogfiles)取两个值之一：

    -   `稀疏的`.fragment日志文件是稀疏创建的。这是默认值。

    -   `满的`。强制将碎片日志文件的所有字节写入磁盘。

        根据您的操作系统和文件系统，设置`initfragmentlogfiles=完整`可以帮助删除写入重做日志的I/O错误。

-   [](<>) [`启用部分`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-enablepartiallcp)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 符合事实的 |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    什么时候`符合事实的`，启用部分本地检查点：这意味着每个LCP只记录完整数据库的一部分，以及包含自上一个LCP以来更改的行的任何记录；如果没有行发生更改，LCP只更新LCP控制文件，不更新任何数据文件。

    如果`启用部分CP`是残疾的(`错误的`)，每个LCP只使用一个文件并写入一个完整的检查点；这对LCP所需的磁盘空间最少，但会增加每个LCP的写入负载。默认值已启用(`符合事实的`)。部分LCP使用的空间比例可以通过[`恢复工作`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-recoverywork)配置参数。

    有关用于完整和部分LCP的文件和目录的更多信息，请参阅[NDB群集数据节点文件系统目录](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-ndbd-filesystemdir-files.html).

    将此参数设置为`错误的`还禁用自适应LCP控制机制使用的磁盘写入速度计算。

-   [](<>) [`立法会五题：暂停`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-lcpscanprogresstimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 第二 |
    | 违约 | 60 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 版本（或更高版本） | NDB 8.0.19 |
    | 类型或单位 | 第二 |
    | 违约 | 180 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    本地检查点片段扫描看门狗定期检查作为本地检查点一部分执行的每个片段扫描是否有进展，如果在给定的时间段后没有进展，则关闭节点。可以使用[`立法会五题：暂停`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-lcpscanprogresstimeout)data node configuration（数据节点配置）参数，设置LCP碎片扫描看门狗关闭节点之前本地检查点可以暂停的最长时间。

    默认值为60秒（提供与早期版本的兼容性）。将此参数设置为0将完全禁用LCP碎片扫描看门狗。

-   [](<>) [`MaxNoofPenFiles`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofopenfiles)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 0 |
    | 范围 | 20-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数设置为打开的文件分配多少内部线程的上限。*任何需要更改此参数的情况都应报告为错误*.

    默认值为0。但是，该参数可设置的最小值为20。

-   [](<>) [`MaxNoOfSavedMessages`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofsavedmessages)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 25 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数设置写入错误日志的最大错误数，以及覆盖现有跟踪文件之前保留的最大跟踪文件数。无论出于何种原因，当节点崩溃时，都会生成跟踪文件。

    默认值为25，将这些最大值设置为25条错误消息和25个跟踪文件。

-   [](<>) [`MaxLCPStartDelay`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxlcpstartdelay)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 秒 |
    | 违约 | 0 |
    | 范围 | 0 - 600 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在并行数据节点恢复中，实际上只有表数据被并行复制和同步；元数据（如字典和检查点信息）的同步是以串行方式完成的。此外，字典和检查点信息的恢复不能与本地检查点的恢复并行执行。这意味着，当同时启动或重新启动多个数据节点时，在执行本地检查点时，数据节点可能会被迫等待，这可能会导致更长的节点恢复时间。

    可以强制本地检查点延迟，以允许更多（可能是所有）数据节点完成元数据同步；一旦每个数据节点的元数据同步完成，所有数据节点都可以并行恢复表数据，即使在执行本地检查点时也是如此。要强制这样的延迟，设置[`MaxLCPStartDelay`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxlcpstartdelay)，它决定了当数据节点继续同步元数据时，集群可以等待多少秒来启动本地检查点。此参数应在`[ndbd默认值]`部分`配置。伊尼`文件，以便对所有数据节点都相同。最大值为600；默认值为0。

-   [](<>) [`NooffFragmentLogFiles`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nooffragmentlogfiles)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 16 |
    | 范围 | 3-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    此参数设置节点的重做日志文件数，从而设置分配给重做日志的空间量。由于重做日志文件被组织在一个环中，所以集合中的第一个和最后一个日志文件（有时分别称为“头”和“尾”日志文件）不相交是非常重要的。当这些数据彼此接近得太近时，由于没有空间容纳新的日志记录，节点开始中止包含更新的所有事务。

    A.`重做`在插入日志记录后，在完成两个必需的本地检查点之前，不会删除该日志记录。检查点频率由本章其他部分讨论的一组配置参数决定。

    默认参数值为16，默认情况下表示16组4个16MB文件，总计1024MB。单个日志文件的大小可以使用[`碎片日志文件大小`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-fragmentlogfilesize)参数在需要大量更新的情况下[`NooffFragmentLogFiles`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nooffragmentlogfiles)可能需要设置为300或更高，以便为重做日志提供足够的空间。

    如果检查点设置很慢，并且对数据库的写入太多，导致日志文件已满，并且无法在不影响恢复的情况下剪切日志尾部，则所有更新事务都会中止，并显示内部错误代码410(`日志文件空间暂时不足`)。在检查点完成且日志尾可以向前移动之前，这种情况一直存在。

    重要的

    此参数不能“动态”更改；必须使用重新启动节点`--首字母`。如果要更改正在运行的群集中所有数据节点的此值，可以使用滚动节点重新启动（使用`--首字母`启动每个数据节点时）。

-   [](<>) [`恢复工作`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-recoverywork)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 60 |
    | 范围 | 25 - 100 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    LCP文件的存储开销百分比。此参数仅在以下情况下有效：[`启用部分CP`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-enablepartiallcp)这是真的，也就是说，仅当启用了部分本地检查点时。较高的值意味着：

    -   每个LCP写入的记录更少，LCP占用更多空间

    -   重启期间需要进行更多工作

        较低的`恢复工作`指：

    -   在每个LCP期间写入更多记录，但LCP需要更少的磁盘空间。

    -   重启过程中的工作量更少，因此重启速度更快，而在正常操作过程中，这会导致工作量增加

        例如，设置`恢复工作`到60意味着LCP的总大小大约是要检查的数据大小的1+0.6=1.6倍。这意味着与使用完整检查点的重启相比，重启的恢复阶段需要多做60%的工作。（这在重启的其他阶段得到了充分补偿，因此使用部分LCP时，整体重启速度比使用完整LCP时更快。）为了不填写重做日志，必须在1+（1/`恢复工作`)乘以检查点期间的数据更改速率，因此`恢复工作`=60时，必须以大约1+（1/0.6）=2.67倍的变化率写入。换句话说，如果以每秒10兆字节的速度写入更改，那么检查点需要以每秒大约26.7兆字节的速度写入。

        背景`恢复工作`=40意味着只需要总LCP大小的1.4倍（因此恢复阶段所需的时间减少了10%到15%。在这种情况下，检查点写入速率是更改速率的3.5倍。

    [](<>)

    NDB源分布包括一个模拟LCP的测试程序。`lcp_模拟器。复写的副本`可以在`存储/ndb/src/kernel/blocks/backup/`.要在Unix平台上编译和运行它，请执行以下命令：

    ```
    $> gcc lcp_simulator.cc
    $> ./a.out
    ```

    此程序没有依赖项，只有`斯特迪奥。H`，并且不需要连接到NDB群集或MySQL服务器。默认情况下，它模拟300个LCP（三组100个LCP，每个LCP依次包括插入、更新和删除），在每个LCP之后报告LCP的大小。可以通过更改的值来更改模拟`恢复工作`, `插入工作`和`删除你的工作`在源代码中重新编译。有关更多信息，请参阅该程序的源代码。

-   [](<>) [`插入恢复工作`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-insertrecoverywork)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 40 |
    | 范围 | 0 - 70 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    百分比[`恢复工作`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-recoverywork)用于插入行。较高的值会增加本地检查点期间的写入次数，并减小LCP的总大小。较低的值会减少LCP期间的写入次数，但会导致LCP使用更多的空间，这意味着恢复需要更长的时间。此参数仅在以下情况下有效：[`启用部分CP`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-enablepartiallcp)这是真的，也就是说，仅当启用了部分本地检查点时。

-   [](<>) [`使能还原控制`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-enableredocontrol)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 错误的 |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    启用自适应检查点速度以控制重做日志的使用。开始`错误的`禁用（默认设置）。背景[`启用部分CP`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-enablepartiallcp)到`错误的`还将禁用自适应计算。

    启用时，`使能还原控制`允许数据节点在将LCP写入磁盘的速率方面具有更大的灵活性。更具体地说，启用此参数意味着可以采用更高的写入速率，以便LCP可以更快地完成并修剪重做日志，从而减少恢复时间和磁盘空间需求。此功能允许数据节点更好地利用现代固态存储设备和协议提供的更高I/O速率和更大带宽，例如使用非易失性存储器Express（NVMe）的固态驱动器（SSD）。

    该参数当前默认为`错误的`（残疾）由于`NDB`仍然广泛部署在I/O或带宽相对于采用固态技术的系统（如使用传统硬盘（HDD））受到限制的系统上。在这样的设置中`使能还原控制`这种机制很容易导致I/O子系统饱和，增加数据节点输入和输出的等待时间。特别是，这可能会导致NDB磁盘数据表出现问题，这些表空间或日志文件组与数据节点LCP和重做日志文件共享受约束的IO子系统；此类问题可能包括由于GCP停止错误导致的节点或群集故障。

[](<>)**元数据对象。**下一套`[ndbd]`参数定义元数据对象的池大小，用于定义索引、事件和集群间复制使用的属性、表、索引和触发器对象的最大数量。

笔记

这些仅作为集群的“建议”，任何未指定的都将恢复为显示的默认值。

-   [](<>) [`MaxNootFattributes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofattributes)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 1000 |
    | 范围 | 32-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数设置可在群集中定义的建议最大属性数；喜欢[`MaxNoOfTables`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftables)，它不打算用作硬上限。

    （在较旧的NDB群集版本中，此参数有时被视为某些操作的硬限制。这会导致NDB群集复制出现问题，当时可能会创建比可以复制的表更多的表，有时可能会导致混淆。）[或者不可能，视情况而定,]创造更多`MaxNootFattributes`属性。）

    默认值为1000，最小可能值为32。最大值为4294967039。由于所有元数据都在服务器上完全复制，每个属性在每个节点上消耗大约200字节的存储空间。

    设置时[`MaxNootFattributes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofattributes)，重要的是要提前做好准备[`改变桌子`](alter-table.html)您可能希望在将来执行的语句。这是因为在执行[`改变桌子`](alter-table.html)在集群表上，使用的属性数是原始表中的3倍，一个好的做法是允许使用双倍的属性数。例如，如果NDB集群表具有最多的属性(*`最大属性数`*)有100个属性，这是[`MaxNootFattributes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofattributes)会是`6 * *`最大属性数`* = 600`.

    您还应该估计每个表的平均属性数，并将其乘以[`MaxNoOfTables`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftables).如果该值大于上一段中获得的值，则应使用较大的值。

    假设您可以创建所有需要的表而没有任何问题，您还应该通过尝试实际操作来验证这个数字是否足够[`改变桌子`](alter-table.html)在配置参数之后。如果不成功，增加[`MaxNootFattributes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofattributes)再乘以[`MaxNoOfTables`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftables)然后再测试一次。

-   [](<>) [`MaxNoOfTables`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftables)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 128 |
    | 范围 | 8 - 20320 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    为集群中的每个表和每个唯一哈希索引分配一个表对象。此参数为整个集群设置建议的最大表对象数；喜欢[`MaxNootFattributes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofattributes)，它不打算用作硬上限。

    （在较旧的NDB群集版本中，此参数有时被视为某些操作的硬限制。这会导致NDB群集复制出现问题，当时可能会创建比可以复制的表更多的表，有时可能会导致混淆。）[或者不可能，视情况而定,]创造更多`MaxNoOfTables`（桌子）

    对于每个具有[`斑点`](blob.html)数据类型一个额外的表用于存储大部分数据[`斑点`](blob.html)数据在定义表的总数时，也必须考虑这些表。

    此参数的默认值为128。最小值为8，最大值为20320。每个表对象每个节点大约消耗20KB。

    笔记

    总数[`MaxNoOfTables`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftables), [`MaxNoOfOrderedIndexes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooforderedindexes)和[`MaxNoofuniquehashindex`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofuniquehashindexes)不得超过`2<sup>32</sup>− 2.` (4294967294).

-   [](<>) [`MaxNoOfOrderedIndexes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooforderedindexes)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 128 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    对于集群中的每个有序索引，都会分配一个对象，描述要索引的内容及其存储段。默认情况下，这样定义的每个索引也定义了一个有序索引。每个唯一索引和主键都有一个有序索引和一个散列索引。[`MaxNoOfOrderedIndexes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooforderedindexes)设置可在系统中随时使用的有序索引总数。

    此参数的默认值为128。每个索引对象在每个节点上消耗大约10KB的数据。

    笔记

    总数[`MaxNoOfTables`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftables), [`MaxNoOfOrderedIndexes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooforderedindexes)和[`MaxNoofuniquehashindex`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofuniquehashindexes)不得超过`2<sup>32</sup>− 2.` (4294967294).

-   [](<>) [`MaxNoofuniquehashindex`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofuniquehashindexes)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 64 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    对于每个不是主键的唯一索引，会分配一个特殊表，将唯一键映射到索引表的主键。默认情况下，还为每个唯一索引定义了一个有序索引。要防止出现这种情况，必须指定`使用散列`定义唯一索引时的选项。

    默认值为64。每个索引每个节点大约消耗15KB。

    笔记

    总数[`MaxNoOfTables`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftables), [`MaxNoOfOrderedIndexes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooforderedindexes)和[`MaxNoofuniquehashindex`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofuniquehashindexes)不得超过`2<sup>32</sup>− 2.` (4294967294).

-   [](<>) [`MaxNoOfTriggers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftriggers)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 768 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    为每个唯一的哈希索引分配内部更新、插入和删除触发器。（这意味着为每个唯一的哈希索引创建三个触发器。）然而*命令*索引只需要一个触发器对象。备份还为集群中的每个普通表使用三个触发器对象。

    集群之间的复制还利用内部触发器。

    此参数设置群集中触发器对象的最大数量。

    默认值为768。

-   [](<>) [`MaxNoOfSubscriptions`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofsubscriptions)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    每个[`NDB`](mysql-cluster.html)NDB集群中的表需要NDB内核中的订阅。对于某些NDB API应用程序，可能需要或希望更改此参数。但是，对于作为SQL节点的MySQL服务器的正常使用，不需要这样做。

    的默认值[`MaxNoOfSubscriptions`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofsubscriptions)等于0，被视为等于[`MaxNoOfTables`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooftables).每个订阅消耗108字节。

-   [](<>) [`MaxNoOfSubscribers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofsubscribers)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    只有在使用NDB群集复制时，此参数才有意义。默认值为0。在NDB 8.0.26之前，这被视为`2*MaxNoOfTables`; 从NDB 8.0.26开始，它被视为`2*MaxNoOfTables+2*[API节点数]`.每个月有一次订阅[`NDB`](mysql-cluster.html)两台MySQL服务器（一台作为复制源，另一台作为副本）的表。每个订阅服务器使用16字节的内存。

    当使用循环复制、多源复制和其他涉及2台以上MySQL服务器的复制设置时，应该将此参数增加到[**mysqld**](mysqld.html)复制中包含的进程（这通常但不总是与集群的数量相同）。例如，如果您有一个使用三个NDB群集的循环复制设置，其中一个[**mysqld**](mysqld.html)连接到每个集群，每个集群[**mysqld**](mysqld.html)进程充当源和副本，您应该设置[`MaxNoOfSubscribers`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofsubscribers)相当于`3*MaxNoOfTables`.

    有关更多信息，请参阅[第23.7节，“NDB群集复制”](mysql-cluster-replication.html).

-   [](<>) [`MaxNoofConcurrent子操作`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentsuboperations)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 256 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数设置集群中所有API节点一次可以执行的操作数上限。默认值（256）对于正常操作来说已经足够了，并且可能只需要在有大量API节点同时执行大量操作的情况下进行调整。

[](<>)**布尔参数。**数据节点的行为还受一组`[ndbd]`参数采用布尔值。这些参数可以分别指定为`符合事实的`通过将它们设置为`1.`或`Y`，以及`错误的`通过将它们设置为`0`或`N`.

-   [](<>) [`压缩`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-compressedlcp)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 错误的 |
    | 范围 | 对，错 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    将此参数设置为`1.`导致压缩本地检查点文件。使用的压缩相当于**gzip——快**，可以节省数据节点上存储未压缩的检查点文件所需的50%或更多空间。可以为单个数据节点或所有数据节点启用压缩LCP（通过在`[ndbd默认值]`部分`配置。伊尼`文件）。

    重要的

    无法将压缩的本地检查点恢复到运行不支持此功能的MySQL版本的群集。

    默认值为`0`（残疾）。

    在NDB 8.0.29之前，该参数对Windows平台没有影响（BUG#106075，BUG#33727690）。

-   [](<>) [`撞车事故`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-crashoncorruptedtuple)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 符合事实的 |
    | 范围 | 对，错 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    启用此参数（默认设置）后，每当数据节点遇到损坏的元组时，就会强制其关闭。

-   [](<>) [`无盘`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskless)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |  |  |
    | --------- | ---------- | --- | --- |
    | 类型或单位 | 符合事实的 | 错（1） | 0) |
    | 违约 | 错误的 |  |  |
    | 范围 | 对，错 |  |  |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IS（NDB 8.0.13） |  |  |

    可以将NDB集群表指定为无盘，这意味着表不会检查到磁盘，也不会发生日志记录。这样的表只存在于主内存中。使用无盘表的一个后果是，这些表或这些表中的记录都无法在崩溃中存活。但是，在无盘模式下操作时，可以运行[**ndbd**](mysql-cluster-programs-ndbd.html)在无盘计算机上。

    重要的

    此功能会导致*全部的*群集以无盘模式运行。

    启用此功能后，将禁用群集联机备份。此外，群集不可能部分启动。

    [`无盘`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskless)默认情况下是禁用的。

-   [](<>) [`加密文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-encryptedfilesystem)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 0 |
    | 范围 | 0 - 1 |
    | 补充 | NDB 8.0.29 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    加密LCP和表空间文件，包括撤消日志和重做日志。默认情况下禁用(`0`); 开始`1.`使能。

    目前生产中不支持此功能，应将其视为试验性功能。

-   [](<>) [`拉塔洛克`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-latealloc)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 1. |
    | 范围 | 0 - 1 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在与管理服务器建立连接后，为该数据节点分配内存。默认情况下启用。

-   [](<>) [`锁定页面主存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-lockpagesinmainmemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 0 |
    | 范围 | 0 - 2 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    对于许多操作系统，包括Solaris和Linux，可以将进程锁定到内存中，从而避免任何磁盘交换。这有助于保证集群的实时性。

    此参数采用一个整数值`0`, `1.`或`2.`，其作用如下表所示：

    -   `0`：禁用锁定。这是默认值。

    -   `1.`：为进程分配内存后执行锁定。

    -   `2.`：在分配进程内存之前执行锁定。

        如果操作系统未配置为允许非特权用户锁定页面，则使用此参数的数据节点进程可能必须作为系统根运行。([`锁定页面主存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-lockpagesinmainmemory)使用`姆洛考尔`作用在Linux内核2.6.9中，没有特权的用户可以根据`最大锁定内存`。有关更多信息，请参阅**ulimit-l**和<http://linux.die.net/man/2/mlock>).

    笔记

    在较旧的NDB集群版本中，此参数是布尔值。`0`或`错误的`是默认设置，并禁用了锁定。`1.`或`符合事实的`在分配内存后启用进程锁定。NDB Cluster 8.0`符合事实的`或`错误的`将此参数的值设置为错误。

    重要的

    从`格利伯` 2.10, `格利伯`使用每线程竞技场减少共享池上的锁争用，这会消耗实际内存。通常，数据节点进程不需要每个线程的竞技场，因为它在启动后不执行任何内存分配。（分配器之间的这种差异似乎不会显著影响性能。）

    这个`格利伯`行为旨在通过`马洛克竞技场马克斯`环境变量，但之前该机制中存在一个缺陷`格利伯`2.16意味着该变量不能设置为小于8，因此无法回收浪费的内存。（错误#15907219；另见[http://sourceware.org/bugzilla/show\_缺陷cgi？id=13137](http://sourceware.org/bugzilla/show_bug.cgi?id=13137)有关此问题的更多信息。）

    解决这个问题的一个可能方法是使用`LD_预载`环境变量以预加载`杰马洛克`内存分配库，以取代随`格利伯`.

-   [](<>) [`ODirect`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-odirect)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 错误的 |
    | 范围 | 对，错 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    启用此参数会导致[`NDB`](mysql-cluster.html)试图使用`O_DIRECT`写入LCP、备份和重做日志，通常会降低**kswapd**以及CPU使用率。在Linux上使用NDB群集时，启用[`ODirect`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-odirect)如果您使用的是2.6或更高版本的内核。

    [`ODirect`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-odirect)默认情况下是禁用的。

-   [](<>) [`ODirectSyncFlag`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-odirectsyncflag)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 错误的 |
    | 范围 | 对，错 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    启用此参数后，将执行重做日志写入，以便将完成的每个文件系统写入作为对`同步`。如果至少满足以下条件之一，则忽略此参数的设置：

    -   [`ODirect`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-odirect)未启用。

    -   `初始化碎片日志文件`即将`稀疏的`.

        默认情况下禁用。

-   [](<>) [`RestartOnErrorInsert`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-restartonerrorinsert)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 错误代码 |
    | 违约 | 2. |
    | 范围 | 0 - 4 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    只有在构建调试版本时，才能访问此功能。在调试版本中，作为测试的一部分，可以在执行单个代码块时插入错误。

    默认情况下，此功能已禁用。

-   [](<>) [`StopOnError`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-stoponerror)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 1. |
    | 范围 | 0, 1 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数指定当遇到错误情况时，数据节点进程是否应退出或执行自动重启。

    此参数的默认值为1；这意味着，默认情况下，错误会导致数据节点进程停止。

    当遇到错误时`StopOnError`如果为0，则重新启动数据节点进程。

    MySQL Cluster Manager的用户应该注意`StopOnError`等于1，这将防止MySQL Cluster Manager代理在执行自己的重新启动和恢复后重新启动任何数据节点。看见[在Linux上启动和停止代理](https://dev.mysql.com/doc/mysql-cluster-manager/1.4/en/mcm-using-start-stop-agent-linux.html)，以获取更多信息。

-   [](<>) [`UseShm`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-useshm)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 错误的 |
    | 范围 | 对，错 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    启用此数据节点与也在此主机上运行的API节点之间的共享内存连接。设置为1以启用。

##### 控制超时、间隔和磁盘分页

有很多`[ndbd]`指定群集数据节点中各种操作之间的超时和间隔的参数。大多数超时值都是以毫秒为单位指定的。在适用的情况下，提及任何例外情况。

-   [](<>) [`WatchDogCheck之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenwatchdogcheck)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 6000 |
    | 范围 | 70-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    为了防止主线程在某个时刻陷入无限循环，一个“看门狗”线程会检查主线程。此参数指定检查之间的毫秒数。如果进程在三次检查后仍处于相同的状态，看门狗线程将终止它。

    为了实验或适应当地条件，可以很容易地更改此参数。它可以在每个节点的基础上指定，尽管这样做似乎没有什么理由。

    默认超时为6000毫秒（6秒）。

-   [](<>) [`WatchDogCheckInitial之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenwatchdogcheckinitial)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 6000 |
    | 范围 | 70-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    这类似于[`WatchDogCheck之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenwatchdogcheck)参数，除了[`WatchDogCheckInitial之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenwatchdogcheckinitial)在分配内存的早期启动阶段，控制存储节点内部执行检查之间经过的时间量。

    默认超时为6000毫秒（6秒）。

-   [](<>) [`StartPartialTimeout`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startpartialtimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 30000 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数指定在调用集群初始化例程之前，集群等待所有数据节点出现的时间。此超时用于尽可能避免部分群集启动。

    在执行群集的初始启动或初始重启时，会覆盖此参数。

    默认值为30000毫秒（30秒）。0禁用超时，在这种情况下，只有当所有节点都可用时，集群才能启动。

-   [](<>) [`StartPartitionedTimeout`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startpartitionedtimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    如果集群在等待后准备好启动[`StartPartialTimeout`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startpartialtimeout)毫秒，但仍可能处于分区状态，群集将等待，直到超时也过去。如果[`StartPartitionedTimeout`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startpartitionedtimeout)设置为0时，群集将无限期等待（2）<sup>32</sup>−1毫秒，或约49.71天）。

    在执行群集的初始启动或初始重启时，会覆盖此参数。

-   [](<>) [`StartFailureTimeout`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startfailuretimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    如果数据节点未在该参数指定的时间内完成其启动序列，则节点启动失败。将此参数设置为0（默认值）意味着不应用数据节点超时。

    对于非零值，此参数以毫秒为单位。对于包含大量数据的数据节点，应增加此参数。例如，对于包含数GB数据的数据节点，周期长达10个字节−执行节点重启可能需要15分钟（即600000到1000000毫秒）。

-   [](<>) [`StartNoDeGroup超时`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startnonodegrouptimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 15000 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    当数据节点配置为[`节点组=65536`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nodegroup)，被视为未分配给任何节点组。完成后，集群将等待`StartNoDeGroup超时`毫秒，然后将这些节点视为已添加到传递给[`--nowait节点`](mysql-cluster-programs-ndbd.html#option_ndbd_nowait-nodes)选项，然后开始。默认值为`15000`（也就是说，管理服务器等待15秒）。将此参数设置为`0`这意味着集群将无限期地等待。

    `StartNoDeGroup超时`集群中的所有数据节点必须相同；因此，您应该始终将其设置为`[ndbd默认值]`部分`配置。伊尼`文件，而不是单个数据节点。

    看见[第23.6.7节，“在线添加NDB群集数据节点”](mysql-cluster-online-add-node.html)，以获取更多信息。

-   [](<>) [`HeartbeatIntervalDbDb`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatintervaldbdb)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 5000 |
    | 范围 | 10-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    发现失败节点的主要方法之一是使用心跳。此参数表示心跳信号的发送频率和预期接收频率。心跳不能被禁用。

    在连续丢失四次心跳间隔后，该节点被宣布为死亡。因此，通过心跳机制发现故障的最长时间是心跳间隔的五倍。

    默认的心跳间隔为5000毫秒（5秒）。此参数不得大幅更改，也不得在节点之间有很大差异。如果一个节点使用5000毫秒，而监视它的节点使用1000毫秒，显然该节点很快就会被宣布为死亡。此参数可以在在线软件升级期间更改，但只能以较小的增量更改。

    另见[网络通信和延迟](mysql-cluster-overview-requirements.html#mysql-cluster-network-latency-issues)，以及[`连接检查间隔延迟`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-connectcheckintervaldelay)配置参数。

-   [](<>) [`心跳间歇`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatintervaldbapi)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 1500 |
    | 范围 | 100-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    每个数据节点向每个MySQL服务器（SQL节点）发送心跳信号，以确保其保持联系。如果MySQL服务器未能及时发送心跳信号，它将被宣布为“死机”，在这种情况下，所有正在进行的事务都已完成，所有资源都已释放。在前一个MySQL实例启动的所有活动完成之前，SQL节点无法重新连接。此测定的三个心跳标准与所述的相同[`HeartbeatIntervalDbDb`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatintervaldbdb).

    默认间隔为1500毫秒（1.5秒）。由于每个数据节点独立于所有其他数据节点，监视与之连接的MySQL服务器，因此每个数据节点之间的间隔可能会有所不同。

    有关更多信息，请参阅[网络通信和延迟](mysql-cluster-overview-requirements.html#mysql-cluster-network-latency-issues).

-   [](<>) [`心脏跳动`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatorder)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 0 |
    | 范围 | 0 - 65535 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | S（NDB 8.0.13） |

    数据节点以循环的方式相互发送心跳，每个数据节点监控前一个。如果给定的数据节点未检测到心跳信号，则该节点会将圆圈中的前一个数据节点声明为“死”（即，集群不再可访问）。全局地确定数据节点是死的；换句话说；一旦一个数据节点被宣布为死节点，集群中的所有节点都会将其视为死节点。

    与其他对节点之间的心跳相比，驻留在不同主机上的数据节点之间的心跳可能太慢（例如，由于心跳间隔非常低或临时连接问题），因此数据节点被宣布为已死亡，即使该节点仍然可以作为集群的一部分运行。

    在这种情况下，在数据节点之间传输心跳的顺序可能会影响特定数据节点是否被宣布死亡。如果不必要地进行这种声明，这反过来会导致节点组不必要的丢失，从而导致集群失败。

    考虑在2台主机上运行4个数据节点A、B、C和D的设置`1号旅社`和`2号旅社`，这些数据节点组成2个节点组，如下表所示：

    [](<>)

    **表23.10在两台主机host1、host2上运行的四个数据节点A、B、C、D；每个数据节点属于两个节点组中的一个。**

    | 节点组 | 在上运行的节点`1号旅社` | 在上运行的节点`2号旅社` |
    | --- | ------------- | ------------- |
    | 节点组0: | 节点A | 节点B |
    | 节点组1： | 节点C | 节点D |

    假设心跳按A的顺序传输->B->C->D->A.在这种情况下，主机之间的心跳丢失会导致节点B声明节点A已死亡，节点C声明节点B已死亡。这会导致节点组0丢失，因此群集会失败。另一方面，如果传输顺序是->B->D->C->A（所有其他条件保持如前所述），心跳的丢失导致节点A和D被宣布死亡；在这种情况下，每个节点组都有一个幸存节点，集群也幸存下来。

    这个[`心脏跳动`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatorder)配置参数使用户可以配置心跳传输的顺序。的默认值[`心脏跳动`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatorder)是零；允许在所有数据节点上使用默认值会导致心跳传输的顺序由`NDB`.如果使用此参数，则必须为集群中的每个数据节点将其设置为非零值（最大65535），并且该值对于每个数据节点都必须是唯一的；这会导致心跳信号按其顺序从数据节点传输到数据节点[`心脏跳动`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatorder)从最低到最高的值（然后直接从具有最高[`心脏跳动`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatorder)到具有最低值的数据节点，以完成循环）。这些值不必是连续的。例如，强制心跳传输命令->B->D->C->A在前面概述的场景中，可以设置[`心脏跳动`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatorder)如下所示的值：

    [](<>)

    **表23.11强制执行心跳转换顺序的HeartbeatOrder值->B->D->C->A.**

    | 节点 | `心脏跳动`价值 |
    | --- | -------- |
    | A. | 10 |
    | B | 20 |
    | C | 30 |
    | D | 25 |

    要使用此参数更改正在运行的NDB集群中的心跳传输顺序，必须首先设置[`心脏跳动`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatorder)对于全局配置中群集中的每个数据节点(`配置。伊尼`)文件。要使更改生效，必须执行以下任一操作：

    -   完全关闭并重新启动整个群集。

    -   连续2次滚动重启集群。*在两次滚动重启中，所有节点必须以相同的顺序重启*.

        你可以用[`倾倒908`](https://dev.mysql.com/doc/ndb-internals/en/dump-command-908.html)在数据节点日志中观察此参数的影响。

-   [](<>) [`连接检查间隔延迟`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-connectcheckintervaldelay)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在其中一个数据节点的心跳检测失败达5次（最多5次）后，此参数启用数据节点之间的连接检查[`HeartbeatIntervalDbDb`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-heartbeatintervaldbdb)毫秒。

    这种数据节点在以下时间间隔内进一步无法响应：`连接检查间隔延迟`毫秒被认为是可疑的，并且在两次这样的间隔后被认为是死亡的。这在存在已知延迟问题的设置中非常有用。

    此参数的默认值为0（已禁用）。

-   [](<>) [`检查点之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenlocalcheckpoints)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 4字节的字数，以2为底的对数 |
    | 违约 | 20 |
    | 范围 | 0 - 31 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数是一个例外，因为它没有指定在启动新的本地检查点之前等待的时间；相反，它用于确保在更新相对较少的集群中不执行本地检查点。在大多数更新率较高的集群中，很可能在前一个本地检查点完成后立即启动新的本地检查点。

    添加自上一个本地检查点开始以来执行的所有写入操作的大小。该参数也是例外，因为它被指定为4字节字数的以2为底的对数，因此默认值20表示4MB（4×2）<sup>20</sup>)在写操作中，21意味着8MB，以此类推，最大值为31，相当于8GB的写操作。

    集群中的所有写操作都添加在一起。背景[`检查点之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenlocalcheckpoints)到6或更少意味着本地检查点不间断地连续执行，与集群的工作负载无关。

-   [](<>) [`全局检查点之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenglobalcheckpoints)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 2000 |
    | 范围 | 20 - 32000 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    提交事务时，它会提交到镜像数据的所有节点的主内存中。但是，作为提交的一部分，事务日志记录不会刷新到磁盘。这种行为背后的原因是，在至少两台自主主机上安全提交事务应该符合合理的持久性标准。

    同样重要的是，即使是最糟糕的情况——集群的完全崩溃——也要得到妥善处理。为了保证这一点的发生，在给定时间间隔内发生的所有事务都被放入一个全局检查点，可以将其视为一组已提交的事务，这些事务已刷新到磁盘。换句话说，作为提交过程的一部分，事务被放置在全局检查点组中。之后，这个组的日志记录被刷新到磁盘上，然后整个事务组被安全地提交到集群中所有计算机上的磁盘上。

    在NDB 8.0中，我们建议当您将固态磁盘（尤其是使用NVMe的磁盘）与磁盘数据表一起使用时，减少该值。在这种情况下，您还应该确保[`MaxDiskDataLatency`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskdatalatency)设置为适当的级别。

    此参数定义全局检查点之间的间隔。默认值为2000毫秒。

-   [](<>) [`Lobalcheckpointstimeout之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenglobalcheckpointstimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 120000 |
    | 范围 | 10-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数定义全局检查点之间的最小超时。默认值为120000毫秒。

-   [](<>) [`时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenepochs)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 100 |
    | 范围 | 0 - 32000 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数定义NDB群集复制的同步时间间隔。默认值为100毫秒。

    [`时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenepochs)是“微GCP”实施的一部分，可用于提高NDB群集复制的性能。

-   [](<>) [`时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenepochstimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 0 |
    | 范围 | 0 - 256000 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数定义NDB群集复制的同步时段超时。如果节点未能在该参数确定的时间内参与全局检查点，则该节点将关闭。默认值为0；换句话说，超时被禁用。

    [`时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenepochstimeout)是“微GCP”实施的一部分，可用于提高NDB群集复制的性能。

    只要GCP保存时间超过1分钟或GCP提交时间超过10秒，此参数的当前值和警告就会写入群集日志。

    将此参数设置为零会导致禁用由保存超时、提交超时或两者引起的GCP停止。此参数的最大可能值为256000毫秒。

-   [](<>) [`MaxBufferedEpochs`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxbufferedepochs)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 时代 |
    | 违约 | 100 |
    | 范围 | 0 - 100000 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    订阅节点可能落后的未处理的时间段数。超过此数字会导致滞后用户断开连接。

    对于大多数正常操作，默认值100就足够了。如果订阅节点的延迟足以导致断开连接，通常是由于进程或线程的网络或调度问题。（在极少数情况下，问题可能是由于[`NDB`](mysql-cluster.html)客户。）当历元较长时，最好将该值设置为低于默认值。

    断开连接可防止客户端问题影响数据节点服务，耗尽缓冲数据的内存，并最终关闭。相反，由于断开连接（例如二进制日志中的间隙事件），只有客户端受到影响，迫使客户端重新连接或重新启动进程。

-   [](<>) [`MaxBufferedEpochBytes`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxbufferedepochbytes)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 26214400 |
    | 范围 | 26214400（0x01900000）-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此节点分配给缓冲记录的总字节数。

-   [](<>) [`活动事务处理之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweeninactivetransactionabortcheck)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 1000 |
    | 射程 | 1000-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    超时操作是通过在每个事务上按此参数指定的间隔检查一次计时器来执行的。因此，如果此参数设置为1000毫秒，则每秒会检查每个事务是否超时一次。

    默认值为1000毫秒（1秒）。

-   [](<>) [`事务处理活动超时`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactioninactivetimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 4294967039（0xFFFFFEFF） |
    | 射程 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数表示在事务中止之前，允许在同一事务中的两个操作之间经过的最长时间。

    此参数的默认值为`4G`（也是最大值）。对于需要确保没有事务将锁保持太长时间的实时数据库，此参数应设置为相对较小的值。将其设置为0意味着应用程序永远不会超时。单位是毫秒。

-   [](<>) [`TransactionDeadlockDetectionTimeout`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-transactiondeadlockdetectiontimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 1200 |
    | 射程 | 50–4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    当一个节点执行涉及事务的查询时，该节点会等待集群中的其他节点响应，然后继续。此参数设置事务可以在数据节点内执行的时间量，即事务协调器等待参与事务的每个数据节点执行请求的时间。

    由于以下任何原因都可能导致响应失败：

    -   节点“死了”

    -   该操作已进入锁定队列

    -   请求执行该操作的节点可能严重过载。

        此超时参数表示事务协调器在中止事务之前等待另一个节点执行查询的时间，对于节点故障处理和死锁检测都很重要。

        默认超时值为1.2毫秒（1.2秒）。

        此参数的最小值为50毫秒。

-   [](<>) [`DiskSyncSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-disksyncsize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 4米 |
    | 范围 | 32K-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    这是将数据刷新到本地检查点文件之前要存储的最大字节数。这样做是为了防止写缓冲，因为写缓冲会严重影响性能。这个参数是*不*打算取代[`检查点之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenlocalcheckpoints).

    笔记

    什么时候[`ODirect`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-odirect)如果已启用，则无需设置[`DiskSyncSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-disksyncsize); 事实上，在这种情况下，它的价值被忽略了。

    默认值为4M（4兆字节）。

-   [](<>) [`MaxDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeed)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 2000万 |
    | 范围 | 1M-1024G |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | S（NDB 8.0.13） |

    设置本地检查点和备份操作在该NDB群集中没有重新启动（由此数据节点或任何其他数据节点）时写入磁盘的最大速率（以字节/秒为单位）。

    要设置此数据节点重新启动时允许的最大磁盘写入速率，请使用[`MaxDiskWriteSpeedDownRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeedownrestart)。要设置其他数据节点重新启动时允许的最大磁盘写入速率，请使用[`MaxDiskWriteSpeedOtherNodeRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeedothernoderestart)。所有LCP和备份操作的磁盘写入最低速度可以通过设置[`MinDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-mindiskwritespeed).

-   [](<>) [`MaxDiskWriteSpeedOtherNodeRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeedothernoderestart)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 50米 |
    | 范围 | 1M-1024G |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | S（NDB 8.0.13） |

    当此NDB群集中的一个或多个数据节点（而非此节点）重新启动时，通过本地检查点和备份操作设置写入磁盘的最大速率（字节/秒）。

    要设置此数据节点重新启动时允许的最大磁盘写入速率，请使用[`MaxDiskWriteSpeedDownRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeedownrestart)。要设置在群集中任何位置都没有数据节点重新启动时允许的最大磁盘写入速率，请使用[`MaxDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeed)。所有LCP和备份操作的磁盘写入最低速度可以通过设置[`MinDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-mindiskwritespeed).

-   [](<>) [`MaxDiskWriteSpeedDownRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeedownrestart)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 200米 |
    | 范围 | 1M-1024G |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | S（NDB 8.0.13） |

    在此数据节点重新启动时，通过本地检查点和备份操作设置写入磁盘的最大速率（以字节/秒为单位）。

    要设置其他数据节点重新启动时允许的最大磁盘写入速率，请使用[`MaxDiskWriteSpeedOtherNodeRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeedothernoderestart)。要设置在群集中任何位置都没有数据节点重新启动时允许的最大磁盘写入速率，请使用[`MaxDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeed)。所有LCP和备份操作的磁盘写入最低速度可以通过设置[`MinDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-mindiskwritespeed).

-   [](<>) [`MinDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-mindiskwritespeed)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 数字的 |
    | 违约 | 10米 |
    | 范围 | 1M-1024G |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | S（NDB 8.0.13） |

    通过本地检查点和备份操作设置写入磁盘的最低速率（以字节/秒为单位）。

    LCP和备份在各种条件下允许的最大磁盘写入速率可使用参数进行调整[`MaxDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeed), [`MaxDiskWriteSpeedDownRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeedownrestart)和[`MaxDiskWriteSpeedOtherNodeRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeedothernoderestart)。有关更多信息，请参阅这些参数的说明。

-   [](<>) [`仲裁超时`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-arbitrationtimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 毫秒 |
    | 违约 | 7500 |
    | 范围 | 10-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数指定数据节点等待仲裁器对仲裁消息的响应的时间。如果超过此值，则假定网络已分裂。

    默认值为7500毫秒（7.5秒）。

-   [](<>) [`仲裁`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-arbitration)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 列举 |
    | 违约 | 违约 |
    | 范围 | 默认、禁用、外部 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    这个[`仲裁`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-arbitration)参数允许选择仲裁方案，对应于此参数的三个可能值之一：

    -   **违约**这使得仲裁能够按照仲裁委员会的决定正常进行`仲裁级别`管理和API节点的设置。这是默认值。

    -   **残废**背景`仲裁=无效`在`[ndbd默认值]`部分`配置。伊尼`文件来完成与设置相同的任务`仲裁级别`在所有管理和API节点上设置为0。什么时候`仲裁`是这样设置的，有吗`仲裁级别`设置被忽略。

    -   **等等。**那个[`仲裁`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-arbitration)参数还可以配置仲裁，使集群等待到[`仲裁超时`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-arbitrationtimeout)已通过外部群集管理器应用程序来执行仲裁，而不是在内部处理仲裁。这可以通过设置`仲裁=等待`在`[ndbd默认值]`部分`配置。伊尼`文件为了获得最佳效果`外部等待`设置时，建议[`仲裁超时`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-arbitrationtimeout)是外部群集管理器执行仲裁所需间隔的2倍。

    重要的

    此参数应仅用于`[ndbd默认值]`群集配置文件的。当[`仲裁`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-arbitration)为各个数据节点设置不同的值。

-   [](<>) [`RestartSubscriberConnectTimeout`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-restartsubscriberconnecttimeout)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 太太 |
    | 违约 | 12000 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数确定数据节点等待订阅API节点连接的时间。一旦超时过期，所有“丢失”的API节点都将从集群断开连接。要禁用此超时，请设置`RestartSubscriberConnectTimeout`到0。

    虽然此参数以毫秒为单位指定，但超时本身被解析为下一个最大整秒。

-   [](<>) [`保持间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-keepalivesendinterval)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 60000 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | 补充 | NDB 8.0.27 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    从NDB 8.0.27开始，通过设置此参数，可以启用和控制数据节点之间发送的保持活动信号之间的间隔。默认的`保持间隔`为60000毫秒（一分钟）；将其设置为0将禁用保持活动状态信号。介于1和10之间（含1和10）的值被视为10。

    在监视和断开空闲TCP连接的环境中，此参数可能很有用，当群集空闲时，可能会导致不必要的数据节点故障。

[](<>)**缓冲和日志记录。**几个`[ndbd]`配置参数使高级用户能够更好地控制节点进程使用的资源，并根据需要调整各种缓冲区大小。

将日志记录写入磁盘时，这些缓冲区用作文件系统的前端。如果节点在无盘模式下运行，则可以将这些参数设置为其最小值，而不会因为服务器“伪造”磁盘写入而受到惩罚[`NDB`](mysql-cluster.html)存储引擎的文件系统抽象层。

-   [](<>) [`取消索引缓冲`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-undoindexbuffer)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 2米 |
    | 范围 | 1M-4294967039（0xFFFFFEFF） |
    | 反对 | NDB 8.0.27 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数以前设置撤消索引缓冲区的大小，但在当前版本的NDB Cluster中不起作用。

    在NDB 8.0.27及更高版本中，在集群配置文件中使用此参数会引发弃用警告；您应该期望在未来的NDB集群版本中删除它。

-   [](<>) [`解除缓冲`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-undodatabuffer)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 16M |
    | 范围 | 1M-4294967039（0xFFFFFEFF） |
    | 反对 | NDB 8.0.27 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数以前设置撤消数据缓冲区的大小，但在当前版本的NDB Cluster中不起作用。

    在NDB 8.0.27及更高版本中，在集群配置文件中使用此参数会引发弃用警告；您应该期望在未来的NDB集群版本中删除它。

-   [](<>) [`氧化缓冲液`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-redobuffer)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 32M |
    | 范围 | 1M-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    还需要记录所有更新活动。重做日志可以在系统重新启动时重播这些更新。NDB恢复算法使用数据的“模糊”检查点和撤销日志，然后应用重做日志回放恢复点之前的所有更改。

    `氧化缓冲液`设置写入重做日志的缓冲区大小。默认值为32MB；最小值为1MB。

    如果缓冲区太小，则[`NDB`](mysql-cluster.html)存储引擎发出错误代码1221（重做日志缓冲区过载）。因此，如果您试图降低`氧化缓冲液`作为群集配置在线更改的一部分。

    [**ndbmtd**](mysql-cluster-programs-ndbmtd.html)为每个LDM线程分配一个单独的缓冲区（请参阅[`ThreadConfig`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig)).例如，对于4个LDM线程[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)数据节点实际上有4个缓冲区并分配`氧化缓冲液`字节到每个字节，总共`4*重做缓冲区`字节。

-   [](<>) [`EventLogBufferSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-eventlogbuffersize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 8192 |
    | 范围 | 0-64K |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | S（NDB 8.0.13） |

    控制用于数据节点内NDB日志事件的循环缓冲区的大小。

[](<>)**控制日志消息。**在管理集群时，能够控制为各种事件类型发送的日志消息的数量非常重要`斯特杜特`.对于每个事件类别，有16个可能的事件级别（编号为0到15）。将给定事件类别的事件报告设置为15级意味着该类别中的所有事件报告都将发送到`斯特杜特`; 将其设置为0意味着不生成该类别的事件报告。

默认情况下，只有启动消息被发送到`斯特杜特`，其余的事件报告级别默认设置为0。原因是这些消息也会发送到管理服务器的群集日志。

可以为管理客户端设置一组类似的级别，以确定要在集群日志中记录哪些事件级别。

-   [](<>) [`LogLevelStartup`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelstartup)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 1. |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    进程启动期间生成的事件的报告级别。

    默认级别为1。

-   [](<>) [`LogLevelShutdown`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelshutdown)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    作为节点正常关闭的一部分生成的事件的报告级别。

    默认级别为0。

-   [](<>) [`对数水平统计`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelstatistic)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    统计事件的报告级别，如主键读取次数、更新次数、插入次数、与缓冲区使用有关的信息等。

    默认级别为0。

-   [](<>) [`LogLevelCheckpoint`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelcheckpoint)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 日志级别 |
    | 违约 | 0 |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    本地和全局检查点生成的事件的报告级别。

    默认级别为0。

-   [](<>) [`LogLevelNodeRestart`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelnoderestart)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    节点重新启动期间生成的事件的报告级别。

    默认级别为0。

-   [](<>) [`LogLevelConnection`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelconnection)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    群集节点之间的连接生成的事件的报告级别。

    默认级别为0。

-   [](<>) [`对数级误差`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelerror)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    由集群整体的错误和警告生成的事件的报告级别。这些错误不会导致任何节点故障，但仍值得报告。

    默认级别为0。

-   [](<>) [`Loglevel拥塞`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelcongestion)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 数量 |
    | 违约 | 0 |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    拥堵事件的报告级别。这些错误不会导致节点故障，但仍值得报告。

    默认级别为0。

-   [](<>) [`LogLevelInfo`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-loglevelinfo)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0 - 15 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    为获取集群的一般状态信息而生成的事件的报告级别。

    默认级别为0。

-   [](<>) [`MemReportFrequency`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-memreportfrequency)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 0个 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重新启动类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数控制数据节点内存使用情况报告在集群日志中的记录频率；它是一个整数值，表示报告之间的秒数。

    每个数据节点的数据内存和索引内存使用都记录为[`数据计量学`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)，如中所述`配置。INI公司`走吧例如，如果[`数据计量学`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)等于100 MB，给定的数据节点使用50 MB作为数据内存存储，集群日志中的对应行可能看起来像这样：

    ```
    2006-12-24 01:18:16 [MgmSrvr] INFO -- Node 2: Data usage is 50%(1280 32K pages of total 2560)
    ```

    [`MemReport频率`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-memreportfrequency)不是必需参数。如果使用，可以为中的所有群集数据节点设置`[NDBD默认值]`第节，共节`配置。INI公司`，也可以在相应的数据节点中设置或覆盖`[ndbd]`配置文件的节。最小值（也是默认值）为0，在这种情况下，只有当内存使用率达到特定百分比（80%、90%和100%）时才会记录内存报告，如[第23.6.3.2节，“NDB群集日志事件”](mysql-cluster-log-events.html)-是的。

-   [](<>) [`启动状态报告频率`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startupstatusreportfrequency)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 秒 |
    | 默认值 | 0个 |
    | Range | 0 - 4294967039 (0xFFFFFEFF) |
    | [Restart Type](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N (NDB 8.0.13) |

    When a data node is started with the[`--initial`](mysql-cluster-programs-ndbd.html#option_ndbd_initial), it initializes the redo log file during Start Phase 4 (see[Section 23.6.4, “Summary of NDB Cluster Start Phases”](mysql-cluster-start-phases.html)). When very large values are set for[`NoOfFragmentLogFiles`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-nooffragmentlogfiles),[`FragmentLogFileSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-fragmentlogfilesize), or both, this initialization can take a long time.You can force reports on the progress of this process to be logged periodically, by means of the[`StartupStatusReportFrequency`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startupstatusreportfrequency)configuration parameter. In this case, progress is reported in the cluster log, in terms of both the number of files and the amount of space that have been initialized, as shown here:

    ```
    2009-06-20 16:39:23 [MgmSrvr] INFO -- Node 1: Local redo log file initialization status:
    #Total files: 80, Completed: 60
    #Total MBytes: 20480, Completed: 15557
    2009-06-20 16:39:23 [MgmSrvr] INFO -- Node 2: Local redo log file initialization status:
    #Total files: 80, Completed: 60
    #Total MBytes: 20480, Completed: 15570
    ```

    These reports are logged each[`StartupStatusReportFrequency`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startupstatusreportfrequency)seconds during Start Phase 4. If[`StartupStatusReportFrequency`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startupstatusreportfrequency)is 0 (the default), then reports are written to the cluster log only when at the beginning and at the completion of the redo log file initialization process.

##### Data Node Debugging Parameters

The following parameters are intended for use during testing or debugging of data nodes, and not for use in production.

-   [](<>) [`DictTrace`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-dicttrace)

    [](<>)

    [](<>)

    | Version (or later) | NDB 8.0.13 |
    | ------------------ | ---------- |
    | Type or units | bytes |
    | Default | undefined |
    | Range | 0 - 100 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    可以通过使用创建和删除表来记录事件的跟踪`口述追踪`。此参数仅在调试NDB内核代码时有用。`口述追踪`接受整数值。默认值为0，表示不进行日志记录；1启用跟踪日志记录，2启用其他日志记录[`DBDICT`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbdict.html)调试输出。

-   [](<>) [`看门狗`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-watchdogimmediatekill)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 错误的 |
    | 范围 | 对，错 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    通过启用`看门狗`数据节点配置参数。只有在调试或故障排除时，才能使用此参数，以获取跟踪文件，准确报告执行停止时发生的情况。

[](<>)**备份参数。**那个`[ndbd]`本节讨论的参数定义了为执行在线备份而预留的内存缓冲区。

-   [](<>) [`BackUpdateBufferSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupdatabuffersize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 16M |
    | 范围 | 512K-4294967039（0xFFFFFEFF） |
    | 反对 | 是（在NDB 7.6中） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在创建备份时，有两个缓冲区用于将数据发送到磁盘。备份数据缓冲区用于填充通过扫描节点表记录的数据。一旦该缓冲区被填充到指定的水平[`备份大小`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupwritesize)，页面被发送到磁盘。在将数据刷新到磁盘的同时，备份过程可以继续填充此缓冲区，直到空间耗尽。发生这种情况时，备份过程会暂停扫描，并等待某些磁盘写入完成释放内存，以便继续扫描。

    此参数的默认值为16MB。最低是512K。

-   [](<>) [`BackupDiskWriteSpeedPct`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupdiskwritespeedpct)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 百分比 |
    | 违约 | 50 |
    | 范围 | 0 - 90 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    在正常操作期间，数据节点尝试最大化用于本地检查点和备份的磁盘写入速度，同时保持在[`MinDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-mindiskwritespeed)和[`MaxDiskWriteSpeed`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskwritespeed).Disk write throttling为每个LDM线程提供了总预算的同等份额。这允许并行LCP在不超过磁盘I/O预算的情况下进行。由于备份仅由一个LDM线程执行，这实际上导致了预算削减，导致备份完成时间更长，而且如果在备份日志缓冲区填充率高于可实现的写入率时，更改率足够高，无法完成备份。

    这个问题可以通过使用`BackupDiskWriteSpeedPct`配置参数，其取值范围为0-90（含0-90），该值被解释为在LDM线程之间为LCP共享剩余预算之前保留的节点最大写入速率预算的百分比。运行备份的LDM线程将收到备份的全部写入速率预算，以及本地检查点的写入速率预算（减少）份额。

    此参数的默认值为50（解释为50%）。

-   [](<>) [`BackupLogBufferSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backuplogbuffersize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 16M |
    | 范围 | 2M-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    备份日志缓冲区的作用与备份数据缓冲区的作用类似，只是它用于生成备份执行期间所有表写入的日志。写入这些页面的原则与使用备份数据缓冲区时相同，只是当备份日志缓冲区中没有更多空间时，备份会失败。因此，备份日志缓冲区的大小必须足够大，以便在进行备份时处理写入活动造成的负载。看见[第23.6.8.3节，“NDB群集备份的配置”](mysql-cluster-backup-configuration.html).

    对于大多数应用程序，此参数的默认值应该足够。事实上，磁盘写入速度不足比备份日志缓冲区已满更有可能导致备份失败。如果磁盘子系统未针对应用程序引起的写负载进行配置，则群集不太可能执行所需的操作。

    最好将群集节点配置为处理器成为瓶颈，而不是磁盘或网络连接。

    此参数的默认值为16MB。

-   [](<>) [`备份存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupmemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 32M |
    | 范围 | 0 - 4294967039 (0xFFFFFEFF) |
    | 已弃用 | 是（在 NDB 7.4 中） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数已弃用，并且可能会在 NDB Cluster 的未来版本中删除。对其进行的任何设置都将被忽略。

-   [](<>) [`备份报告频率`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupreportfrequency)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 秒 |
    | 默认 | 0 |
    | 范围 | 0 - 4294967039 (0xFFFFFEFF) |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数控制备份期间在管理客户端中发布备份状态报告的频率，以及将此类报告写入集群日志的频率（前提是集群事件日志被配置为允许它 - 请参阅[日志记录和检查点](mysql-cluster-ndbd-definition.html#mysql-cluster-logging-and-checkpointing)）。[`备份报告频率`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupreportfrequency)表示备份状态报告之间的时间（以秒为单位）。

    默认值为 0。

-   [](<>) [`备份写入大小`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupwritesize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 字节 |
    | 默认 | 256K |
    | 范围 | 32K - 4294967039 (0xFFFFFEFF) |
    | 已弃用 | 是（在 NDB 7.6 中） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数指定备份日志和备份数据缓冲区写入磁盘的消息的默认大小。

    此参数的默认值为 256KB。

-   [](<>) [`BackupMaxWriteSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupmaxwritesize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 字节 |
    | 默认 | 1M |
    | 范围 | 256K - 4294967039 (0xFFFFFEFF) |
    | 已弃用 | 是（在 NDB 7.6 中） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数指定备份日志和备份数据缓冲区写入磁盘的消息的最大大小。

    此参数的默认值为 1MB。

-   [](<>) [`压缩备份`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-compressedbackup)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 布尔值 |
    | 默认 | 错误的 |
    | 范围 | 真假 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    启用此参数会导致压缩备份文件。使用的压缩相当于**gzip --快速**，并且可以节省 50% 或更多的数据节点上存储未压缩备份文件所需的空间。可以为单个数据节点或所有数据节点启用压缩备份（通过在`[ndbd 默认]`的部分`配置文件`文件）。

    重要的

    您无法将压缩备份还原到运行不支持此功能的 MySQL 版本的集群。

    默认值为`0`（禁用）。

-   [](<>) [`要求加密备份`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-requireencryptedbackup)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.22 |
    | --------- | ------------ |
    | 类型或单位 | 整数 |
    | 默认 | 0 |
    | 范围 | 0 - 1 |
    | 添加 | 新开发银行 8.0.22 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    如果设置为 1，则必须加密备份。虽然可以为每个数据节点单独设置此参数，但建议您在`[ndbd 默认]`的部分`配置文件`全局配置文件。有关执行加密备份的更多信息，请参阅[第 23.6.8.2 节，“使用 NDB Cluster Management Client 创建备份”](mysql-cluster-backup-using-management-client.html).

    在 NDB 8.0.22 中添加。

笔记

备份文件的位置由[`备份数据目录`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupdatadir)数据节点配置参数。

**其他要求。**指定这些参数时，以下关系必须成立。否则，数据节点无法启动。

-   `BackupDataBufferSize >= BackupWriteSize + 188KB`

-   `BackupLogBufferSize >= BackupWriteSize + 16KB`

-   `BackupMaxWriteSize >= BackupWriteSize`

##### NDB Cluster 实时性能参数

这`[ndbd]`本节讨论的参数用于将线程调度和锁定到多处理器数据节点主机上的特定 CPU。

笔记

要使用这些参数，数据节点进程必须以系统根用户身份运行。

-   [](<>) [`构建索引线程`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-buildindexthreads)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 数字 |
    | 默认 | 128 |
    | 范围 | 0 - 128 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数确定在系统或节点启动期间以及运行时重建有序索引时要创建的线程数[**数据库\_恢复**](mysql-cluster-programs-ndb-restore.html) [`--重建索引`](mysql-cluster-programs-ndb-restore.html#option_ndb_restore_rebuild-indexes).仅当每个数据节点的表有多个分片时才支持（例如，当`COMMENT="NDB_TABLE=PARTITION_BALANCE=FOR_RA_BY_LDM_X_2"`与[`创建表`](create-table.html)）。

    将此参数设置为 0（默认值）将禁用有序索引的多线程构建。

    使用时支持该参数[**ndbd**](mysql-cluster-programs-ndbd.html)要么[**ndbmtd**](mysql-cluster-programs-ndbmtd.html).

    您可以在数据节点初始重启期间启用多线程构建，方法是设置[`TwoPassInitialNodeRestartCopy`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-twopassinitialnoderestartcopy)数据节点配置参数`真的`.

-   [](<>) [`LockExecuteThreadToCPU`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-lockexecutethreadtocpu)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 一组 CPU ID |
    | 默认 | 0 |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    当与[**ndbd**](mysql-cluster-programs-ndbd.html)，这个参数（现在是一个字符串）指定分配给处理的 CPU 的 ID[`NDBCLUSTER`](mysql-cluster.html)执行线程。当与[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)，此参数的值是分配给处理执行线程的 CPU ID 的逗号分隔列表。列表中的每个 CPU ID 都应该是 0 到 65535（含）范围内的整数。

    指定的 ID 数应与由下式确定的执行线程数相匹配[`MaxNoOfExecutionThreads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads).但是，在使用此参数时，不能保证以任何给定的顺序将线程分配给 CPU。您可以使用此类型获得更细粒度的控制[`线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig).

    [`LockExecuteThreadToCPU`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-lockexecutethreadtocpu)没有默认值。

-   [](<>) [`LockMaintThreadsT​​oCPU`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-lockmaintthreadstocpu)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 处理器编号 |
    | 默认 | 0 |
    | 范围 | 0 - 64K |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数指定分配给处理的 CPU 的 ID[`NDBCLUSTER`](mysql-cluster.html)维护线程。

    此参数的值是 0 到 65535（含）范围内的整数。*没有默认值*.

-   [](<>) [`沼`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-numa)

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

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 数字 |
    | 默认 | 1 |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    该参数决定了非统一内存访问（NUMA）是由操作系统控制还是由数据节点进程控制，数据节点是否使用[**ndbd**](mysql-cluster-programs-ndbd.html)要么[**ndbmtd**](mysql-cluster-programs-ndbmtd.html).默认，`新开发银行`尝试在主机操作系统提供 NUMA 支持的任何数据节点上使用交错的 NUMA 内存分配策略。

    环境`努马 = 0`意味着datanode进程本身不会尝试设置内存分配策略，并允许由操作系统确定此行为，这可能会进一步由单独的**数字**工具。那是，`努马 = 0`产生系统默认行为，可以自定义**数字**.对于许多 Linux 系统，系统默认行为是在分配时将套接字本地内存分配给任何给定进程。这在使用时可能会出现问题[**ndbmtd**](mysql-cluster-programs-ndbmtd.html);这是因为**nbdmtd**在启动时分配所有内存，导致不平衡，为不同的套接字提供不同的访问速度，尤其是在锁定主内存中的页面时。

    环境`努马 = 1`表示数据节点进程使用`libnuma`请求交错内存分配。（这也可以在操作系统级别手动完成，使用**数字**.) 使用交错分配实际上告诉数据节点进程忽略非统一内存访问，但不尝试利用快速本地内存；相反，数据节点进程试图避免由于远程内存缓慢而导致的不平衡。如果不需要交错分配，请设置`沼`为 0，以便可以在操作系统级别确定所需的行为。

    这`沼`配置参数仅在 Linux 系统上受支持，其中`libnuma.so`可用。

-   [](<>) [`实时调度器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-realtimescheduler)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 布尔值 |
    | 默认 | 错误的 |
    | 范围 | 真假 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    将此参数设置为 1 启用数据节点线程的实时调度。

    默认值为 0（禁用调度）。

-   [](<>) [`调度器执行定时器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerexecutiontimer)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 微秒 |
    | 默认 | 50 |
    | 范围 | 0 - 11000 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数指定线程在发送之前在调度程序中执行的时间（以微秒为单位）。将其设置为 0 可以最小化响应时间；为了实现更高的吞吐量，您可以以更长的响应时间为代价来增加值。

    默认值为 50 微秒，我们的测试表明，它可以在高负载情况下略微增加吞吐量，而不会严重延迟请求。

-   [](<>) [`调度器响应性`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerresponsiveness)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 整数 |
    | 默认 | 5 |
    | 范围 | 0 - 10 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    将余额设置在`新开发银行`速度和吞吐量之间的调度程序。此参数接受一个整数，其值在 0-10 范围内（含），默认值为 5。相对于吞吐量，较高的值提供更好的响应时间。较低的值会以更长的响应时间为代价提供更高的吞吐量。

-   [](<>) [`调度器SpinTimer`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerspintimer)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 微秒 |
    | 默认 | 0 |
    | 范围 | 0 - 500 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数指定线程在睡眠前在调度程序中执行的时间（以微秒为单位）。

    从 NDB 8.0.20 开始，如果[`自旋法`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-spinmethod)已设置，则忽略此参数的任何设置。

-   [](<>) [`自旋法`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-spinmethod)

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

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.20 |
    | --------- | ------------ |
    | 类型或单位 | 枚举 |
    | 默认 | 静态纺纱 |
    | 范围 | CostBasedSpinning、LatencyOptimizedSpinning、DatabaseMachineSpinning、StaticSpinning |
    | 添加 | 新开发银行 8.0.20 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    此参数从 NDB 8.0.20 开始存在，但在 NDB 8.0.24 之前无效。它提供了一个简单的界面来控制数据节点上的自适应自旋，有四个可能的值为自旋参数值提供预设，如下表所示：

    1.  `静态纺纱`（默认）：集`启用自适应旋转`到`错误的`和[`调度器SpinTimer`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerspintimer)为 0。（`SetAllowedSpinOverhead`在这种情况下不相关。）

    2.  `基于成本的纺纱`： 套`启用自适应旋转`到`真的`, [`调度器SpinTimer`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerspintimer)到 100，并且`SetAllowedSpinOverhead`到 200。

    3.  `延迟优化旋转`： 套`启用自适应旋转`到`真的`, [`调度器SpinTimer`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerspintimer)到 200，和`SetAllowedSpinOverhead`到 1000。

    4.  `数据库机器计划`：套`使能适应计划`到`符合事实的`,[`SchedulerSpinTimer`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerspintimer)到500，和`设置允许的开销`到一万。这是为了在线程拥有自己的CPU的情况下使用。

        自旋参数的修正[`旋转法`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-spinmethod)如下表所述：

    -   [`SchedulerSpinTimer`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerspintimer)：这与该名称的数据节点配置参数相同。应用于此参数的设置由`旋转法`覆盖在中设置的任何值`配置。伊尼`文件

    -   `使能适应计划`：启用或禁用自适应旋转。禁用它会导致在不检查CPU资源的情况下执行旋转。此参数不能直接在群集配置文件中设置，在大多数情况下不需要设置，但可以使用直接启用[`垃圾场104004 1`](https://dev.mysql.com/doc/ndb-internals/en/dump-command-104004.html)或残疾[`垃圾场104004 0`](https://dev.mysql.com/doc/ndb-internals/en/dump-command-104004.html)在[**ndb\_米高梅**](mysql-cluster-programs-ndb-mgm.html)管理客户。

    -   `设置允许的开销`：设置允许获得延迟的CPU时间量。此参数不能直接在中设置`配置。伊尼`文件在大多数情况下，SpinMethod应用的设置应该是令人满意的，但如果需要直接更改，可以使用[`垃圾场104002*`开销`*`](https://dev.mysql.com/doc/ndb-internals/en/dump-command-104002.html)要做到这一点，在哪里*`开销`*值的范围为0到10000（含0到10000）；请参见所示设备的说明`倾倒`命令获取详细信息。

        在缺少可用的自旋指令的平台上，例如PowerPC和一些SPARC平台，自旋时间在所有情况下都设置为0，并且`旋转法`除了`静电纺丝`都被忽略了。

-   [](<>) [`TwoPassInitialNodeRestartCopy`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-twopassinitialnoderestartcopy)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 符合事实的 |
    | 范围 | 对，错 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    通过将此配置参数设置为，可以为数据节点的初始重新启动启用有序索引的多线程构建`符合事实的`（默认值），它允许在初始节点重新启动期间进行两次数据复制。

    你还必须设置[`BuildIndexThreads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-buildindexthreads)一个非零值。

[](<>)**多线程配置参数（ndbmtd）。**  [**ndbmtd**](mysql-cluster-programs-ndbmtd.html)默认情况下作为单线程进程运行，必须配置为使用多个线程，使用两种方法中的任何一种，这两种方法都需要在`配置。伊尼`文件第一种方法是简单地为[`MaxNoofExecutionReads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads)配置参数。第二种方法，可以为用户设置更复杂的规则[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)使用[`ThreadConfig`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig).接下来的几段将提供有关这些参数及其在多线程数据节点中使用的信息。

笔记

在数据节点上使用并行性的备份需要在进行备份之前在群集中的所有数据节点上使用多个LDM。有关更多信息，请参阅[第23.6.8.5节，“使用并行数据节点进行NDB备份”](mysql-cluster-backup-parallel-data-nodes.html)以及[第23.5.23.3节，“从并行备份中恢复”](ndb-restore-parallel-data-node-backup.html).

-   [](<>) [`自动线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-automaticthreadconfig)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.23 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 错误的 |
    | 范围 | 对，错 |
    | 补充 | NDB 8.0.23 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IS（NDB 8.0.13） |

    当设置为1时，启用自动线程配置，使用数据节点可用的CPU数量，并考虑`任务集`, `努马克特`、虚拟机、Docker和其他控制给定应用程序可用的CPU的方法（在Windows平台上，自动线程配置使用所有联机的CPU）；或者，您可以设置[`努麦克普斯`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-numcpus)达到所需的CPU数量（最多1024个，自动线程配置可以处理的最大CPU数量）。有什么设置吗[`ThreadConfig`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig)和[`MaxNoofExecutionReads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads)都被忽略了。此外，启用此参数会自动禁用[`分类碎片`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-classicfragmentation).

-   [](<>) [`分类碎片`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-classicfragmentation)

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

    [](<>)

    | 版本（或更高版本） | NDB 8.0.23 |
    | --------- | ---------- |
    | 类型或单位 | 布尔值 |
    | 违约 | 符合事实的 |
    | 范围 | 对，错 |
    | 补充 | NDB 8.0.23 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    启用时（设置为`符合事实的`), `NDB`在LDM之间以经销商通常使用的方式分配fragents`NDB`NDB 8.0.23之前；也就是说，每个节点的默认分区数等于每个数据节点的最小本地数据管理器（LDM）线程数。

    对于预计不会降级到NDB 8.0.22或更低版本的新集群，设置`分类碎片`到`错误的`当第一次设置集群时更可取；这样做会导致每个节点的分区数等于[`分区节点`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-partitionspernode)，确保所有分区在所有LDM之间均匀分布。

    此参数和[`自动线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-automaticthreadconfig)相互排斥；有可能`自动线程配置`自动禁用`分类碎片`.

-   [](<>) `启用多线程备份`

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

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 1. |
    | 范围 | 0 - 1 |
    | 补充 | NDB 8.0.16 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    支持多线程备份。如果每个数据节点至少有2个LDM，则所有LDM线程都会参与备份，备份是使用每个LDM线程一个子目录创建的，每个子目录包含`.ctl`, `数据`和`日志`备份文件。

    此参数通常在以下情况下启用（设置为1）：[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)。强制使用旧版本的[**ndb\_恢复**](mysql-cluster-programs-ndb-restore.html)，通过将此参数设置为0来禁用多线程备份。必须为集群中的每个数据节点执行此操作。

    看见[第23.6.8.5节，“使用并行数据节点进行NDB备份”](mysql-cluster-backup-parallel-data-nodes.html)和[第23.5.23.3节，“从并行备份中恢复”](ndb-restore-parallel-data-node-backup.html)，以获取更多信息。

-   [](<>) `MaxNoofExecutionReads`

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

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 2. |
    | 范围 | 2 - 72 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | S（NDB 8.0.13） |

    此参数直接控制用户使用的执行线程数[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)，最多72个。虽然该参数在`[ndbd]`或`[ndbd默认值]`部分`配置。伊尼`文件，它是[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)不适用于[**ndbd**](mysql-cluster-programs-ndbd.html).

    有可能[`自动线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-automaticthreadconfig)导致忽略此参数的任何设置。

    背景`MaxNoofExecutionReads`根据文件中的矩阵设置每种类型的线程数`存储/ndb/src/kernel/vm/mt_thr_配置。cpp`.此表显示了可能的`MaxNoofExecutionReads`.

    [](<>)

    **表23.12按线程类型（LQH、TC、发送、接收）列出的MaxNoOfExecutionThreads值和相应的线程数。**

    | `MaxNoofExecutionReads`价值 | LDM线程 | TC线程 | 发送线程 | 接收线程 |
    | ------------------------- | ----- | ---- | ---- | ---- |
    | 0 .. 3. | 1. | 0 | 0 | 1. |
    | 4.6. | 2. | 0 | 0 | 1. |
    | 7.8. | 4. | 0 | 0 | 1. |
    | 9 | 4. | 2. | 0 | 1. |
    | 10 | 4. | 2. | 1. | 1. |
    | 11 | 4. | three | one | one |
    | twelve | six | two | one | one |
    | thirteen | six | three | one | one |
    | fourteen | six | three | one | two |
    | fifteen | six | three | two | two |
    | sixteen | eight | three | one | two |
    | seventeen | eight | four | one | two |
    | eighteen | eight | four | two | two |
    | nineteen | eight | five | two | two |
    | twenty | ten | four | two | two |
    | twenty-one | ten | five | two | two |
    | twenty-two | ten | five | two | three |
    | twenty-three | ten | six | two | three |
    | twenty-four | twelve | five | two | three |
    | twenty-five | twelve | six | two | three |
    | twenty-six | twelve | six | three | three |
    | twenty-seven | twelve | seven | three | three |
    | twenty-eight | twelve | seven | three | four |
    | twenty-nine | twelve | eight | three | four |
    | thirty | twelve | eight | four | four |
    | thirty-one | twelve | nine | four | four |
    | thirty-two | sixteen | eight | three | three |
    | thirty-three | sixteen | eight | three | four |
    | thirty-four | sixteen | eight | four | four |
    | thirty-five | sixteen | nine | four | four |
    | thirty-six | sixteen | ten | four | four |
    | thirty-seven | sixteen | ten | four | five |
    | thirty-eight | sixteen | eleven | four | five |
    | thirty-nine | sixteen | eleven | five | five |
    | forty | twenty | ten | four | four |
    | forty-one | twenty | ten | four | five |
    | forty-two | twenty | eleven | four | five |
    | forty-three | twenty | eleven | five | five |
    | forty-four | twenty | twelve | five | five |
    | forty-five | twenty | twelve | five | six |
    | forty-six | twenty | thirteen | five | six |
    | forty-seven | twenty | 13 | 6 | 6 |
    | 48 | 24 | 12 | 5 | 5 |
    | 49 | 24 | 12 | 5 | 6 |
    | 50 | 24 | 13 | 5 | 6 |
    | 51 | 24 | 13 | 6 | 6 |
    | 52 | 24 | 14 | 6 | 6 |
    | 53 | 24 | 14 | 6 | 7 |
    | 54 | 24 | 15 | 6 | 7 |
    | 55 | 24 | 15 | 7 | 7 |
    | 56 | 24 | 16 | 7 | 7 |
    | 57 | 24 | 16 | 7 | 8 |
    | 58 | 24 | 17 | 7 | 8 |
    | 59 | 24 | 17 | 8 | 8 |
    | 60 | 24 | 18 | 8 | 8 |
    | 61 | 24 | 18 | 8 | 9 |
    | 62 | 24 | 19 | 8 | 9 |
    | 63 | 24 | 19 | 9 | 9 |
    | 64 | 32 | 16 | 7 | 7 |
    | 65 | 32 | 16 | 7 | 8 |
    | 66 | 32 | 17 | 7 | 8 |
    | 67 | 32 | 17 | 8 | 8 |
    | 68 | 32 | 18 | 8 | 8 |
    | 69 | 32 | 18 | 8 | 9 |
    | 70 | 32 | 19 | 8 | 9 |
    | 71 | 32 | 20 | 8 | 9 |
    | 72 | 32 | 20 | 8 | 10 |

    总有一个 SUMA（复制）线程。

    [`NoOfFragmentLogParts`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-nooffragmentlogparts)应设置为等于所使用的 LDM 线程数[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)，由该参数的设置决定。该比例不应大于 4:1；明确禁止这种情况的配置。

    LDM 线程的数量也决定了一个`新开发银行`未显式分区的表；这是 LDM 线程数乘以集群中的数据节点数。（如果[**ndbd**](mysql-cluster-programs-ndbd.html)用于数据节点而不是[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)，那么总是有一个 LDM 线程；在这种情况下，自动创建的分区数等于数据节点数。看[第 23.2.2 节，“NDB 集群节点、节点组、片段副本和分区”](mysql-cluster-nodes-groups.html)， 了解更多信息。

    在使用超过默认 LDM 线程数时为 Disk Data 表添加大表空间，如果磁盘页面缓冲区不够大，可能会导致资源和 CPU 使用问题；见描述[`磁盘页面缓冲区内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskpagebuffermemory)配置参数，了解更多信息。

    线程类型将在本节后面介绍（请参阅[`线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig)）。

    将此参数设置在允许的值范围之外会导致管理服务器在启动时中止并显示错误错误行*`数字`*: 非法值*`价值`*对于参数 MaxNoOfExecutionThreads。

    为了`MaxNoOfExecutionThreads`, 值 0 或 1 在内部四舍五入[`新开发银行`](mysql-cluster.html)为 2，因此 2 被视为此参数的默认值和最小值。

    `MaxNoOfExecutionThreads`通常旨在将其设置为等于可用的 CPU 线程数，并分配适合典型工作负载的每种类型的线程数。它不会将特定线程分配给指定的 CPU。对于需要更改提供的设置或将线程绑定到 CPU 的情况，您应该使用[`线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig)相反，它允许您将每个线程直接分配给所需的类型、CPU 或两者。

    多线程数据节点进程始终至少生成此处列出的线程：

    -   1 个本地查询处理程序 (LDM) 线程

    -   1个接收线程

    -   1 个订阅管理器（SUMA 或复制）线程

        为一个`MaxNoOfExecutionThreads`值 8 或更小，不创建 TC 线程，而是由主线程执行 TC 处理。

        更改 LDM 线程数通常需要重新启动系统，无论是使用此参数更改还是[`线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig)，但可以使用节点初始重启来实现更改（*你*) 只要满足以下两个条件：

    -   每个 LDM 线程最多处理 8 个片段，并且

    -   表分片总数是 LDM 线程数的整数倍。

        在 NDB 8.0 中，初始重启是*不是*需要影响此参数的更改，就像在某些旧版本的 NDB Cluster 中一样。

-   [](<>) `NoOfFragmentLogParts`

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

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 数字 |
    | 默认 | 4 |
    | 范围 | 4、6、8、10、12、16、20、24、32 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 在（新开发银行 8.0.13） |

    为属于此的重做日志设置日志文件组的数量[**ndbmtd**](mysql-cluster-programs-ndbmtd.html).此参数的值应设置为等于所使用的 LDM 线程数[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)由设置确定[`MaxNoOfExecutionThreads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads).不允许每个 LDM 使用超过 4 个重做日志部分的配置。

    见描述[`MaxNoOfExecutionThreads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads)了解更多信息。

-   [](<>) [`CPU 数量`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-numcpus)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.23 |
    | --------- | ------------ |
    | 类型或单位 | 整数 |
    | 默认 | 0 |
    | 范围 | 0 - 1024 |
    | 添加 | 新开发银行 8.0.23 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 是（新开发银行 8.0.13） |

    导致自动线程配置仅使用这么多 CPU。如果没有效果[`自动线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-automaticthreadconfig)未启用。

-   [](<>) [`每个节点的分区`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-partitionspernode)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.23 |
    | --------- | ------------ |
    | 类型或单位 | 整数 |
    | 默认 | 2 |
    | 范围 | 1 - 32 |
    | 添加 | 新开发银行 8.0.23 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

    设置创建新节点时在每个节点上使用的分区数`新开发银行`桌子。这可以避免在本地数据管理器 (LDM) 的数量增加时将表拆分为过多的分区。

    虽然可以在不同的数据节点上将此参数设置为不同的值，并且这样做没有已知问题，但这也不太可能有任何优势；因此，建议对所有数据节点只设置一次，在`[ndbd 默认]`全球部分`配置文件`文件。

    如果[`经典碎片化`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-classicfragmentation)启用时，此参数的任何设置都将被忽略。（记住启用[`自动线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-automaticthreadconfig)禁用`经典碎片化`.)

-   [](<>) `线程配置`

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

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 细绳 |
    | 默认 | '' |
    | 范围 | ... |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 小号（新开发银行 8.0.13） |

    此参数与[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)将不同类型的线程分配给不同的 CPU。它的值是一个字符串，其格式具有以下语法：

    ```
    ThreadConfig := entry[,entry[,...]]

    entry := type={param[,param[,...]]}

    type (NDB 8.0.22 and earlier) := ldm | main | recv | send | rep | io | tc | watchdog | idxbld

    type (NDB 8.0.23 and later) := ldm | query | recover | main | recv | send | rep | io | tc | watchdog | idxbld

    param := count=number
      | cpubind=cpu_list
      | cpuset=cpu_list
      | spintime=number
      | realtime={0|1}
      | nosend={0|1}
      | thread_prio={0..10}
      | cpubind_exclusive=cpu_list
      | cpuset_exclusive=cpu_list
    ```

    花括号 (`{`...`}`) 包围参数列表是必需的，即使列表中只有一个参数。

    一种*`参数`*（参数）指定以下任何或所有信息：

    -   给定类型的线程数（`数数`）。

    -   给定类型的线程将非排他地绑定到的 CPU 集。这是由任何一个决定的`cpubind`要么`处理器组`）。`cpubind`使每个线程（非排他性地）绑定到集合中的一个 CPU；`处理器组`意味着每个线程都（非排他地）绑定到指定的 CPU 集。

        在 Solaris 上，您可以改为指定一组 CPU，给定类型的线程将独占绑定到这些 CPU。`cpubind_exclusive`使每个线程独占绑定到集合中的一个 CPU；`cpuset_exclusive`意味着每个线程都专门绑定到指定的 CPU 集。

        只有其中之一`cpubind`, `处理器组`, `cpubind_exclusive`， 要么`cpuset_exclusive`可以在单一配置中提供。

    -   `自旋时间`确定线程在进入睡眠之前旋转的等待时间（以微秒为单位）。

        默认值为`自旋时间`是的价值[`调度器SpinTimer`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerspintimer)数据节点配置参数。

        `自旋时间`不适用于I/O线程、监视程序或脱机索引生成线程，因此无法为这些线程类型设置。

    -   `实时`可以设置为0或1。如果设置为1，线程将以实时优先级运行。这也意味着`线程优先`无法设置。

        这个`实时`参数默认设置为[`实时调度器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-realtimescheduler)数据节点配置参数。

        `实时`无法为脱机索引生成线程设置。

    -   通过设置`诺森德`到1，你可以防止`主要的`,`ldm`,`代表`或`tc`帮助发送线程。默认情况下，此参数为0，不能与其他类型的线程一起使用。

    -   `线程优先`是一个线程优先级，可以设置为0到10，10代表最高优先级。默认值为5。该参数的精确影响是特定于平台的，本节稍后将对其进行描述。

        无法为脱机索引生成线程设置线程优先级。

    **线\_prio设置和平台效果。**实施`线程优先`不同于Linux/FreeBSD、Solaris和Windows。在下面的列表中，我们依次讨论它对这些平台的影响：

    -   *Linux和FreeBSD*：我们绘制地图`线程优先`要提供给`美好的`系统呼叫。由于进程的准确度值越低，表示进程优先级越高，因此`线程优先`具有降低温度的效果`美好的`价值

        [](<>)

        **表23.13螺纹的映射\_Linux和FreeBSD上的nice值**

        | `线程优先`价值 | `美好的`价值 |
        | -------- | ------- |
        | 0 | 19 |
        | 1. | 16 |
        | 2. | 12 |
        | 3. | 8. |
        | 4. | 4. |
        | 5. | 0 |
        | 6. | -4. |
        | 7. | -8. |
        | 8. | -12 |
        | 9 | -16 |
        | 10 | -20 |

        一些操作系统可能会提供最高20级的进程精确性，但并非所有目标版本都支持这一点；因此，我们选择19作为最大值`美好的`可以设置的值。

    -   *Solaris*：设置`线程优先`在Solaris上设置Solaris FX优先级，映射如下表所示：

        [](<>)

        **表23.14螺纹的映射\_Solaris上的外汇优先权**

        | `线程优先`价值 | Solaris `外汇`优先事项 |
        | -------- | ---------------- |
        | 0 | 15 |
        | 1. | 20 |
        | 2. | 25 |
        | 3. | 30 |
        | 4. | 35 |
        | 5. | 40 |
        | 6. | 45 |
        | 7. | 50 |
        | 8. | 55 |
        | 9 | 59 |
        | 10 | 60 |

        A.`线程优先`Solaris上将设置9映射到特殊的FX优先级值59，这意味着操作系统还试图强制线程在自己的CPU内核上单独运行。

    -   *窗户*：我们绘制地图`线程优先`传递给Windows API的Windows线程优先级值`SetThreadPriority（）`作用该映射如下表所示：

         [](<>)

         **表23.15螺纹的映射\_优先进入Windows线程优先级**

        | `线程优先`价值 | Windows线程优先级 |
        | -------- | ------------ |
        | 0 - 1 | `线程优先级最低` |
        | 2 - 3 | `线程优先级低于正常值` |
        | 4 - 5 | `线程优先级正常` |
        | 6 - 7 | `线程优先级高于正常值` |
        | 8 - 10 | `线程优先级最高` |

        这个*`类型`*属性表示NDB线程类型。支持的螺纹类型，以及允许的范围`计数`以下列表中提供了每个的值：

    -   `ldm`：本地查询处理程序([`DBLQH`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dblqh.html)内核块）来处理数据。使用的LDM线程越多，数据的分区就越高。（从NDB 8.0.23开始，当[`分类碎片`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-classicfragmentation)设置为0时，分区的数量与LDM线程的数量无关，并且取决于[`分区节点`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-partitionspernode)相反。）每个LDM线程都维护自己的数据和索引分区集，以及自己的重做日志。在NDB 8.0.23之前，为`ldm`必须是值1、2、4、6、8、12、16、24或32之一。在NDB 8.0.23及更高版本中，可以设置`ldm`至1至332（含）范围内的任何值；也可以将其设置为0，前提是`主要的`, `代表`和`tc`也是0，而且`记录`设置为1；这样做会导致[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)仿真[**ndbd**](mysql-cluster-programs-ndbd.html).

        每个LDM线程通常与一个查询线程分组，以形成一个LDM组。一组4到8个LDM组被分组为循环组。每个LDM线程都可以由同一循环组中的任何查询或线程协助执行。`NDB`尝试形成循环组，使每个循环组中的所有线程都锁定到连接到同一个三级缓存的CPU上，在循环组大小规定的范围内。

        更改LDM线程的数量通常需要重新启动系统才能有效且安全地进行群集操作；如本节下文所述，在某些情况下，这一要求会有所放宽。当使用[`MaxNoofExecutionReads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads).

        如果使用的LDM超过默认数量，则为磁盘数据表添加大表空间（数百GB或更多）可能会导致资源和CPU使用出现问题[`DiskPageBufferMemory`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskpagebuffermemory)它不够大。

        截至NDB 8.0.30，`ldm`必须包含在`ThreadConfig`值字符串。这可能会影响以前版本的升级；看见[第23.3.7节，“NDB集群升级和降级”](mysql-cluster-upgrade-downgrade.html)，以获取更多信息。

    -   `查询`（在NDB 8.0.23中添加）：一个查询线程绑定到一个LDM，并与之一起形成一个LDM组；只针对[`阅读承诺`](innodb-transaction-isolation-levels.html#isolevel_read-committed)询问。查询线程数必须设置为LDM线程数的0、1、2或3倍。查询线程不被使用，除非这被设置覆盖`查询`设置为非零值，或通过启用[`自动线程配置`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-automaticthreadconfig)参数，在这种情况下，LDM的行为与NDB 8.0.23之前相同。

        查询线程还充当恢复线程（请参见下一项），尽管情况并非如此。

        更改查询线程的数量需要重新启动节点。

    -   `恢复`（在NDB 8.0.23中添加）：作为LCP的一部分，恢复线程从片段中恢复数据。

        更改恢复线程的数量需要重新启动节点。

    -   `tc`：事务协调器线程([`DBTC`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbtc.html)内核块）包含正在进行的事务的状态。在NDB 8.0.23及更高版本中，TC线程的最大数量为128；之前，这是32。

        最理想的情况是，每个新事务都可以分配给一个新的TC线程。在大多数情况下，每2个LDM线程1个TC线程足以保证这种情况发生。如果写入的数量与读取的数量相比相对较少，那么每4个LQH线程可能只需要1个TC线程来维护事务状态。相反，在执行大量更新的应用程序中，TC线程与LDM线程的比率可能需要接近1（例如，3个TC线程与4个LDM线程）。

        背景`tc`到0导致TC处理由主线程完成。在大多数情况下，这实际上与将其设置为1相同。

        范围：0-64(*NDB 8.0.22及更早版本*: 0 - 32)

    -   `主要的`：数据字典和事务协调器([`DBDIH`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbdih.html)和[`DBTC`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbtc.html)内核块），提供模式管理。在NDB 8.0.23之前，这始终由一个专用线程处理，从NDB 8.0.23开始，还可以指定零个或两个主线程。

        范围：

        -   *NDB 8.0.22及更早版本*：仅限1人。

             *NDB 8.0.23及更高版本*: 0-2.

            背景`主要的`到0和`代表`1导致`主要的`将要放置到`代表`线组合螺纹如图所示[`恩宾福。线程`](mysql-cluster-ndbinfo-threads.html)表as`主要代表`.这实际上与设置相同`代表`等于1和`主要的`等于0。

            也可以同时设置这两个选项`主要的`和`代表`设置为0，在这种情况下，两个线程都放置在第一个线程中`记录`线由此产生的组合线程被命名为`主要代表`在[`线程`](mysql-cluster-ndbinfo-threads.html)桌子

            截至NDB 8.0.30，`主要的`必须包含在`ThreadConfig`值字符串。这可能会影响以前版本的升级；看见[第23.3.7节，“NDB集群升级和降级”](mysql-cluster-upgrade-downgrade.html)，以获取更多信息。

    -   `记录`：接收线程([`CMVMI`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-cmvmi.html)内核块）。每个接收线程处理一个或多个套接字，用于与NDB集群中的其他节点通信，每个节点一个套接字。NDB集群支持多个接收线程；最多16个这样的线程。

        范围：

        -   *NDB 8.0.22及更早版本*: 1 - 16

        -   *NDB 8.0.23及更高版本*: 1 - 64

            截至NDB 8.0.30，`记录`必须包含在`ThreadConfig`值字符串。这可能会影响以前版本的升级；看见[第23.3.7节，“NDB集群升级和降级”](mysql-cluster-upgrade-downgrade.html)，以获取更多信息。

    -   `邮寄`：发送线程([`CMVMI`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-cmvmi.html)内核块）。为了提高吞吐量，可以从一个或多个独立的专用线程执行发送（最多8个）。

        在NDB 8.0.20及更高版本中，由于多线程实现的变化，使用多个发送线程可能会对可伸缩性产生不利影响。

        以前，所有线程都直接处理自己的发送；这仍然可以通过将发送线程数设置为0来实现（当[`MaxNoofExecutionReads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads)设置为小于10）。虽然这样做会对吞吐量产生相反的影响，但在某些情况下，它还可以减少延迟。

        范围：

        -   *NDB 8.0.22及更早版本*: 0 - 16

        -   *NDB 8.0.23及更高版本*: 0 - 64

    -   `代表`：复制线程([`苏玛`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-suma.html)内核块）。在NDB 8.0.23之前，异步复制操作始终由一个专用线程处理。从NDB 8.0.23开始，该线程可以与主线程组合（参见范围信息）。

        范围：

        -   *NDB 8.0.22及更早版本*：仅限1人。

        -   *NDB 8.0.23及更高版本*: 0-1.

            背景`代表`到0和`主要的`1导致`代表`将要放置到`主要的`线组合螺纹如图所示[`恩宾福。线程`](mysql-cluster-ndbinfo-threads.html)表as`主要代表`.这实际上与设置相同`主要的`等于1和`代表`等于0。

            也可以同时设置这两个选项`主要的`和`代表`设置为0，在这种情况下，两个线程都放置在第一个线程中`记录`线由此产生的组合线程被命名为`主要代表`在[`线程`](mysql-cluster-ndbinfo-threads.html)桌子

            截至NDB 8.0.30，`代表`必须包含在`ThreadConfig`值字符串。这可能会影响以前版本的升级；看见[第23.3.7节，“NDB集群升级和降级”](mysql-cluster-upgrade-downgrade.html)，以获取更多信息。

    -   `木卫一`：文件系统和其他杂项操作。这些任务并不要求很高，总是由一个专用的I/O线程作为一个组来处理。

        范围：1只。

    -   `监察人`：与此类型关联的参数设置实际上应用于多个线程，每个线程都有特定用途。这些线程包括`SocketServer`线程，从其他节点接收连接设置；这个`SocketClient`线程，尝试建立与其他节点的连接；以及检查线程是否正在进行的线程监视程序线程。

        范围：1只。

    -   `idxbld`：脱机索引生成线程。与前面列出的其他线程类型（永久线程）不同，这些线程是临时线程，仅在节点或系统重新启动期间或运行时创建和使用[**ndb\_恢复**](mysql-cluster-programs-ndb-restore.html) [`--重建索引`](mysql-cluster-programs-ndb-restore.html#option_ndb_restore_rebuild-indexes)。它们可能绑定到与绑定到永久线程类型的CPU集重叠的CPU集。

         `线程优先`, `实时`和`旋转时间`无法为脱机索引生成线程设置值。此外`计数`对于这种类型的线程被忽略。

        如果`idxbld`未指定，默认行为如下所示：

        -   如果I/O线程也未绑定，并且这些线程使用任何可用的内核，则脱机索引生成线程不会绑定。

        -   如果I/O线程已绑定，那么脱机索引生成线程将绑定到整个绑定线程集，因为这些线程不应该执行其他任务。

            范围：0-1。

        改变`ThreadCOnfig`通常需要系统初始重启，但在某些情况下，这一要求可以放宽：

    -   如果更改后LDM线程的数量与之前相同，只不过是简单的节点重启（滚动重启，或*N*)是实施变更所必需的。

    -   否则（也就是说，如果LDM线程的数量发生变化），仍然可以使用节点初始重启来实现更改(*镍*)前提是满足以下两个条件：

        1.  每个LDM线程最多处理8个片段

        2.  表片段的总数是LDM线程数的整数倍。

        在任何其他情况下，需要重新启动系统来更改此参数。

    `NDB`可以通过以下两个标准来区分螺纹类型：

    -   该线程是否为执行线程。螺纹类型`主要的`, `ldm`, `查询`（NDB 8.0.23及更高版本），`记录`, `代表`, `tc`和`邮寄`是执行线程；`木卫一`, `恢复`（NDB 8.0.23及更高版本），`监察人`和`idxbld`线程不被视为执行线程。

    -   对给定任务的线程分配是永久的还是临时的。目前，除了`idxbld`被认为是永久的；`idxbld`线程被视为临时线程。

        简单的例子：

    ```
    # Example 1.

    ThreadConfig=ldm={count=2,cpubind=1,2},main={cpubind=12},rep={cpubind=11}

    # Example 2.

    Threadconfig=main={cpubind=0},ldm={count=4,cpubind=1,2,5,6},io={cpubind=3}
    ```

    在为数据节点主机配置线程使用时，通常需要为操作系统和其他任务保留一个或多个CPU。因此，对于一台拥有24个CPU的主机，您可能需要使用20个CPU线程（剩下4个用于其他用途）、8个LDM线程、4个TC线程（LDM线程数的一半）、3个发送线程、3个接收线程，以及1个线程，每个线程用于模式管理、异步复制和I/O操作。（这几乎与使用时的线程分布相同。）[`MaxNoofExecutionReads`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads)设置为等于20。）下面`ThreadConfig`设置执行这些分配，并将所有这些线程额外绑定到特定CPU：

    ```
    ThreadConfig=ldm{count=8,cpubind=1,2,3,4,5,6,7,8},main={cpubind=9},io={cpubind=9}, \
    rep={cpubind=10},tc{count=4,cpubind=11,12,13,14},recv={count=3,cpubind=15,16,17}, \
    send{count=3,cpubind=18,19,20}
    ```

    在大多数情况下，应该可以将主（模式管理）线程和I/O线程绑定到同一个CPU上，正如我们在刚刚展示的示例中所做的那样。

    下面的示例合并了使用这两种方法定义的CPU组`cpuset`和`cpubind`，以及线程优先级的使用。

    ```
    ThreadConfig=ldm={count=4,cpuset=0-3,thread_prio=8,spintime=200}, \
    ldm={count=4,cpubind=4-7,thread_prio=8,spintime=200}, \
    tc={count=4,cpuset=8-9,thread_prio=6},send={count=2,thread_prio=10,cpubind=10-11}, \
    main={count=1,cpubind=10},rep={count=1,cpubind=11}
    ```

    在这种情况下，我们创建了两个LDM组；第一次使用`cpubind`第二个用途是什么`cpuset`. `线程优先`和`旋转时间`为每个组设置相同的值。这意味着总共有八个LDM线程。（你应该确保[`NooffFragmentLogParts`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-nooffragmentlogparts)也设置为8。）四个TC线程只使用两个CPU；当使用`cpuset`指定的CPU少于组中的线程。（对我来说，情况并非如此`cpubind`）发送线程使用两个线程`cpubind`将这些线程绑定到CPU 10和11。主线程和rep线程可以重用这些CPU。

    这个例子展示了`ThreadConfig`和`NooffFragmentLogParts`可以为具有超线程的24 CPU主机设置，使CPU 10、11、22和23可用于操作系统功能和中断：

    ```
    NoOfFragmentLogParts=10
    ThreadConfig=ldm={count=10,cpubind=0-4,12-16,thread_prio=9,spintime=200}, \
    tc={count=4,cpuset=6-7,18-19,thread_prio=8},send={count=1,cpuset=8}, \
    recv={count=1,cpuset=20},main={count=1,cpuset=9,21},rep={count=1,cpuset=9,21}, \
    io={count=1,cpuset=9,21,thread_prio=8},watchdog={count=1,cpuset=9,21,thread_prio=9}
    ```

    接下来的几个例子包括`idxbld`.前两个示例演示了如何为`idxbld`可以重叠为其他（永久）螺纹类型指定的螺纹，第一次使用`cpuset`第二个是使用`cpubind`:

    ```
    ThreadConfig=main,ldm={count=4,cpuset=1-4},tc={count=4,cpuset=5,6,7}, \
    io={cpubind=8},idxbld={cpuset=1-8}

    ThreadConfig=main,ldm={count=1,cpubind=1},idxbld={count=1,cpubind=1}
    ```

    下一个示例为I/O线程指定一个CPU，但不为索引生成线程指定：

    ```
    ThreadConfig=main,ldm={count=4,cpuset=1-4},tc={count=4,cpuset=5,6,7}, \
    io={cpubind=8}
    ```

    自从`ThreadConfig`刚才显示的设置将线程锁定为8个编号为1到8的核，这相当于此处显示的设置：

    ```
    ThreadConfig=main,ldm={count=4,cpuset=1-4},tc={count=4,cpuset=5,6,7}, \
    io={cpubind=8},idxbld={cpuset=1,2,3,4,5,6,7,8}
    ```

    为了利用增强的稳定性`ThreadConfig`但是，有必要确保CPU是隔离的，并且它们不会受到中断的影响，或者不会被操作系统安排执行其他任务。在许多Linux系统上，可以通过设置`IRQBALANCE_禁用的_CPU`在里面`/etc/sysconfig/irqbalance`到`0xFFFFF0`，并使用`ISOLCPU`启动选项在`食物。形态`。有关具体信息，请参阅您的操作系统或平台文档。

[](<>)**磁盘数据配置参数。**影响磁盘数据行为的配置参数包括：

-   [](<>) [`DiskPageBufferEntries`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskpagebufferentries)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 32K页 |
    | 违约 | 10 |
    | 范围 | 1 - 1000 |
    | 版本（或更高版本） | NDB 8.0.19 |
    | 类型或单位 | 字节 |
    | 违约 | 64MB |
    | 范围 | 4MB-16TB |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    这是要分配的页面条目（页面引用）数。它在中指定为32K页的数量[`DiskPageBufferMemory`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskpagebuffermemory)。对于大多数情况，默认值已足够，但如果在磁盘数据表上遇到非常大的事务时遇到问题，则可能需要增加此参数的值。每个页面条目大约需要100字节。

-   [](<>) [`DiskPageBufferMemory`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskpagebuffermemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 64M |
    | 范围 | 4M-1T |
    | 版本（或更高版本） | NDB 8.0.19 |
    | 类型或单位 | 字节 |
    | 违约 | 64M |
    | 范围 | 4M-16T |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    这决定了用于在磁盘上缓存页面的空间量，并在`[ndbd]`或`[ndbd默认值]`部分`配置。伊尼`文件

    笔记

    以前，该参数被指定为32KB的页面数。在NDB 8.0中，它被指定为字节数。

    如果`DiskPageBufferMemory`如果在中使用的LDM线程数超过默认值，则设置得太低[`ThreadConfig`](mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig)（例如`{ldm=6…}`)，尝试将大型（例如500G）数据文件添加到基于磁盘的数据库时可能会出现问题`NDB`表中，进程占用其中一个CPU核时会无限长。

    这是因为，作为向表空间添加数据文件的一部分，扩展页被锁定在额外PGMAN工作线程中的内存中，以便快速访问元数据。添加大文件时，此工作进程的内存不足，无法存储所有数据文件元数据。在这种情况下，你应该增加`DiskPageBufferMemory`，或添加较小的表空间文件。你可能还需要调整[`DiskPageBufferEntries`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskpagebufferentries).

    你可以查询[`恩宾福。diskpagebuffer`](mysql-cluster-ndbinfo-diskpagebuffer.html)表来帮助确定是否应增加此参数的值，以最小化不必要的磁盘搜索。看见[第23.6.14.30节，“ndbinfo diskpagebuffer表”](mysql-cluster-ndbinfo-diskpagebuffer.html)，以获取更多信息。

-   [](<>) [`SharedGlobalMemory`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-sharedglobalmemory)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 128M |
    | 范围 | 0-64吨 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数确定用于日志缓冲区、磁盘操作（如页面请求和等待队列）以及表空间、日志文件组和，`打开`文件和数据文件。共享全局内存池还提供用于满足`撤消缓冲区大小`选项用于[`创建日志文件组`](create-logfile-group.html)和[`更改日志文件组`](alter-logfile-group.html)语句，包括通过设置[`InitialLogFileGroup`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initiallogfilegroup)数据节点配置参数。`SharedGlobalMemory`可以设置在`[ndbd]`或`[ndbd默认值]`部分`配置。伊尼`配置文件，以字节为单位。

    默认值为`128M`.

-   [](<>) [`磁盘线程池`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskiothreadpool)

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

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 线程 |
    | 违约 | 2. |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数确定用于磁盘数据文件访问的未绑定线程数。之前[`磁盘线程池`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskiothreadpool)引入时，每个磁盘数据文件只生成一个线程，这可能会导致性能问题，尤其是在使用非常大的数据文件时。具有[`磁盘线程池`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskiothreadpool)例如，您可以使用多个并行工作的线程访问单个大型数据文件。

    此参数仅适用于磁盘数据I/O线程。

    此参数的最佳值取决于硬件和配置，包括以下因素：

    -   **磁盘数据文件的物理分发。**通过将数据文件、撤消日志文件和数据节点文件系统放置在不同的物理磁盘上，可以获得更好的性能。如果对这些文件集的部分或全部执行此操作，则可以（并且应该）设置[`磁盘线程池`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskiothreadpool)更高级别，以允许单独的线程处理每个磁盘上的文件。

        在NDB 8.0中，还应该禁用[`使用SameDisk的磁盘数据`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskdatausingsamedisk)当使用一个或多个单独的磁盘存储磁盘数据文件时；这提高了磁盘数据表空间检查点的执行速度。

    -   **磁盘性能和类型。**磁盘数据文件处理可以容纳的线程数量也取决于磁盘的速度和吞吐量。更快的磁盘和更高的吞吐量允许更多的磁盘I/O线程。我们的测试结果表明，固态磁盘驱动器可以处理比传统磁盘多得多的磁盘I/O线程，因此具有更高的可用性[`磁盘线程池`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskiothreadpool).

        减少[`全局检查点之间的时间间隔`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenglobalcheckpoints)在使用固态磁盘驱动器时，尤其是使用NVMe的磁盘驱动器时，也建议使用。另见[磁盘数据延迟参数](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-disk-data-latency-parameters).

        此参数的默认值为2。

-   [](<>)**磁盘数据文件系统参数。**下表中的参数可以将NDB群集磁盘数据文件放置在特定目录中，而无需使用符号链接。

    -   [](<>) [`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)

        [](<>)

        [](<>)

        | 版本（或更高版本） | NDB 8.0.13 |
        | --------- | ---------- |
        | 类型或单位 | 文件名 |
        | 违约 | 文件系统 |
        | 范围 | ... |
        | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

        如果指定了此参数，则NDB群集磁盘数据文件和撤消日志文件将放置在指定的目录中。通过为数据文件、撤消日志文件或两者指定值，可以覆盖这一点[`文件系统数据文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdatafiles), [`文件系统文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathundofiles)，或两者兼而有之，如对这些参数的解释。也可以通过在中指定路径来覆盖数据文件`添加数据文件`a条款[`创建表空间`](create-tablespace.html)或[`改变表空间`](alter-tablespace.html)语句，并通过在`添加撤消文件`a条款[`创建日志文件组`](create-logfile-group.html)或[`更改日志文件组`](alter-logfile-group.html)陈述如果[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)那么，没有具体说明[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempath)被使用了。

        如果[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)为给定数据节点指定目录（包括在`[ndbd默认值]`部分`配置。伊尼`文件），然后用`--首字母`导致删除目录中的所有文件。

    -   [](<>) [`文件系统数据文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdatafiles)

        [](<>)

        [](<>)

        | 版本（或更高版本） | NDB 8.0.13 |
        | --------- | ---------- |
        | 类型或单位 | 文件名 |
        | 违约 | 文件系统 |
        | 范围 | ... |
        | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

        如果指定了此参数，则NDB群集磁盘数据文件将放置在指定的目录中。这将覆盖为设置的任何值[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)。通过在中指定路径，可以覆盖给定数据文件的此参数`添加数据文件`a条款[`创建表空间`](create-tablespace.html)或[`改变表空间`](alter-tablespace.html)用于创建该数据文件的语句。如果[`文件系统数据文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdatafiles)那么，没有具体说明[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)使用（或[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempath)如果[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)也未设置）。

        如果[`文件系统数据文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdatafiles)为给定数据节点指定目录（包括在`[ndbd默认值]`部分`配置。伊尼`文件），然后用`--首字母`导致删除目录中的所有文件。

    -   [](<>) [`文件系统文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathundofiles)

         [](<>)

         [](<>)

        | 版本（或更高版本） | NDB 8.0.13 |
        | --------- | ---------- |
        | 类型或单位 | 文件名 |
        | 违约 | 文件系统 |
        | 范围 | ... |
        | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

        如果指定了此参数，则NDB群集磁盘数据撤消日志文件将放置在指定的目录中。这将覆盖为设置的任何值[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)。通过在中指定路径，可以覆盖给定数据文件的此参数`添加撤消`a条款[`创建日志文件组`](create-logfile-group.html)或[`更改日志文件组`](alter-logfile-group.html)用于创建该数据文件的语句。如果[`文件系统文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathundofiles)那么，没有具体说明[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)使用（或[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempath)如果[`文件系统`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)也未设置）。

        如果[`文件系统文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathundofiles)为给定数据节点指定目录（包括在`[ndbd默认值]`部分`配置。伊尼`文件），然后用`--首字母`导致删除目录中的所有文件。

        有关更多信息，请参阅[第23.6.10.1节，“NDB群集磁盘数据对象”](mysql-cluster-disk-data-objects.html).

-   [](<>)**磁盘数据对象创建参数。**接下来的两个参数使您能够在第一次启动集群时，在不使用SQL语句的情况下创建磁盘数据日志文件组、表空间或两者。

    -   [](<>) [`初始日志文件组`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initiallogfilegroup)

        [](<>)

        [](<>)

        | 版本（或更高版本） | 新开发银行 8.0.13 |
        | --------- | ------------ |
        | 类型或单位 | 细绳 |
        | 默认 | [见文档] |
        | 范围 | ... |
        | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 小号（新开发银行 8.0.13） |

        此参数可用于指定执行集群初始启动时创建的日志文件组。[`初始日志文件组`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initiallogfilegroup)指定如下所示：

        ```
        InitialLogFileGroup = [name=name;] [undo_buffer_size=size;] file-specification-list

        file-specification-list:
            file-specification[; file-specification[; ...]]

        file-specification:
            filename:size
        ```

        这`姓名`日志文件组是可选的，默认为`默认-LG`.这`undo_buffer_size`也是可选的；如果省略，则默认为`64M`.每个*`文件规范`*对应一个 undo log 文件，并且必须在*`文件规范列表`*.根据已设置的任何值放置撤消日志文件[`文件系统路径`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempath),[`文件系统路径DD`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)， 和[`文件系统路径撤消文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathundofiles)，就好像它们是作为一个结果创建的[`创建日志文件组`](create-logfile-group.html)要么[`更改日志文件组`](alter-logfile-group.html)陈述。

        考虑以下：

        ```
        InitialLogFileGroup = name=LG1; undo_buffer_size=128M; undo1.log:250M; undo2.log:150M
        ```

        这等效于以下 SQL 语句：

        ```
        CREATE LOGFILE GROUP LG1
            ADD UNDOFILE 'undo1.log'
            INITIAL_SIZE 250M
            UNDO_BUFFER_SIZE 128M
            ENGINE NDBCLUSTER;

        ALTER LOGFILE GROUP LG1
            ADD UNDOFILE 'undo2.log'
            INITIAL_SIZE 150M
            ENGINE NDBCLUSTER;
        ```

        此日志文件组是在数据节点启动时创建的`- 最初的`.

        初始日志文件组的资源与由值指示的资源一起添加到全局内存池中[`共享全局内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-sharedglobalmemory).

        如果使用此参数，应始终在`[ndbd 默认]`的部分`配置文件`文件。未定义在不同数据节点上设置不同值时 NDB Cluster 的行为。

    -   [](<>) [`初始表空间`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initialtablespace)

        [](<>)

        [](<>)

        | 版本（或更高版本） | 新开发银行 8.0.13 |
        | --------- | ------------ |
        | 类型或单位 | 细绳 |
        | 默认 | [见文档] |
        | 范围 | ... |
        | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | 小号（新开发银行 8.0.13） |

        此参数可用于指定在执行集群初始启动时创建的 NDB Cluster Disk Data 表空间。[`初始表空间`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initialtablespace)指定如下所示：

        ```
        InitialTablespace = [name=name;] [extent_size=size;] file-specification-list
        ```

        这`姓名`的表空间是可选的，默认为`默认-TS`.这`extent_size`也是可选的；它默认为`1M`.这*`文件规范列表`*使用与所示相同的语法[`初始日志文件组`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initiallogfilegroup)参数，唯一的区别是每个*`文件规范`*与[`初始表空间`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initialtablespace)对应一个数据文件。必须至少指定一项*`文件规范列表`*.根据已设置的任何值放置数据文件[`文件系统路径`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempath),[`文件系统路径DD`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdd)， 和[`文件系统路径数据文件`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-filesystempathdatafiles)，就好像它们是作为一个结果创建的[`创建表空间`](create-tablespace.html)要么[`改变表空间`](alter-tablespace.html)陈述。

        例如，考虑以下行指定[`初始表空间`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initialtablespace)在里面`[ndbd 默认]`的部分`配置文件`文件（与[`初始日志文件组`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-initiallogfilegroup)，此参数应始终设置在`[ndbd 默认]`部分，因为未定义在不同数据节点上设置不同值时 NDB Cluster 的行为）：

        ```
        InitialTablespace = name=TS1; extent_size=8M; data1.dat:2G; data2.dat:4G
        ```

        这等效于以下 SQL 语句：

        ```
        CREATE TABLESPACE TS1
            ADD DATAFILE 'data1.dat'
            EXTENT_SIZE 8M
            INITIAL_SIZE 2G
            ENGINE NDBCLUSTER;

        ALTER TABLESPACE TS1
            ADD DATAFILE 'data2.dat'
            INITIAL_SIZE 4G
            ENGINE NDBCLUSTER;
        ```

        这个表空间是在数据节点启动时创建的`- 最初的`，并且可以在此后创建 NDB Cluster 磁盘数据表时使用。

-   [](<>)**磁盘数据延迟参数。**此处列出的两个参数可用于改进对 NDB Cluster 磁盘数据表的延迟问题的处理。

    -   [](<>) [`MaxDiskDataLatency`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxdiskdatalatency)

        [](<>)

        [](<>)

        | 版本（或更高版本） | 新开发银行 8.0.19 |
        | --------- | ------------ |
        | 类型或单位 | 小姐 |
        | 默认 | 0 |
        | 范围 | 0 - 8000 |
        | 添加 | 新开发银行 8.0.19 |
        | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

        此参数控制磁盘访问的最大允许平均延迟（最大 8000 毫秒）。当达到这个极限时，`新开发银行`开始中止事务以减少对磁盘数据 I/O 子系统的压力。采用`0`禁用延迟检查。

    -   [](<>) [`DiskDataUsingSameDisk`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskdatausingsamedisk)

        [](<>)

        [](<>)

        | 版本（或更高版本） | 新开发银行 8.0.19 |
        | --------- | ------------ |
        | 类型或单位 | 布尔值 |
        | 默认 | 真的 |
        | 范围 | ... |
        | 添加 | 新开发银行 8.0.19 |
        | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（新开发银行 8.0.13） |

        将此参数设置为`错误的`如果您的磁盘数据表空间使用一个或多个单独的磁盘。这样做可以使表空间的检查点以比共享磁盘时通常使用的更高的速率执行。

        什么时候`DiskDataUsingSameDisk`是`真的`,`新开发银行`每当正在进行内存检查点时，都会降低磁盘数据检查点的速率，以帮助确保磁盘负载保持恒定。

[](<>)**磁盘数据和 GCP 停止错误。**  [](<>) [](<>)使用Node等Disk Data表时遇到的错误*`节点ID`*由于检测到 GCP 停止（错误 2303）而终止此节点，通常称为“GCP 停止错误”。当重做日志没有足够快地刷新到磁盘时，就会发生此类错误；这通常是由于磁盘速度慢和磁盘吞吐量不足造成的。

您可以通过使用更快的磁盘以及将磁盘数据文件放置在与数据节点文件系统不同的磁盘上来帮助防止这些错误的发生。降低价值[`全球检查点之间的时间`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenglobalcheckpoints)倾向于减少每个全局检查点要写入的数据量，因此可以在尝试写入全局检查点时提供一些保护，防止重做日志缓冲区溢出；但是，减小此值也可以减少写入 GCP 的时间，因此必须谨慎执行此操作。

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

除了考虑到[`磁盘页面缓冲区内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskpagebuffermemory)如前所述，同样重要的是[`磁盘IO线程池`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskiothreadpool)配置参数设置正确；有[`磁盘IO线程池`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-diskiothreadpool)设置太高很可能导致 GCP 停止错误（错误 #37227）。

GCP 停止可能是由保存或提交超时引起的；这[`TimeBetweenEpochs超时`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-timebetweenepochstimeout)数据节点配置参数确定提交的超时时间。但是，可以通过将此参数设置为 0 来禁用这两种类型的超时。

**用于配置发送缓冲内存分配的参数。**发送缓冲区内存是从所有传输器共享的内存池中动态分配的，这意味着可以根据需要调整发送缓冲区的大小。（以前，NDB 内核为集群中的每个节点使用一个固定大小的发送缓冲区，该缓冲区在节点启动时分配，并且在节点运行时无法更改。）[`总发送缓冲区内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-totalsendbuffermemory)和[`过载限制`](mysql-cluster-tcp-definition.html#ndbparam-tcp-overloadlimit)数据节点配置参数允许设置此内存分配的限制。有关使用这些参数的更多信息（以及[`发送缓冲区内存`](mysql-cluster-tcp-definition.html#ndbparam-tcp-sendbuffermemory)）， 看[第 23.4.3.14 节，“配置 NDB 集群发送缓冲区参数”](mysql-cluster-config-send-buffers.html).

-   [](<>) [`额外发送缓冲区内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-extrasendbuffermemory)

    [](<>)

    此参数指定除了使用的任何集合之外要分配的传输器发送缓冲区内存量[`总发送缓冲区内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-totalsendbuffermemory),[`发送缓冲区内存`](mysql-cluster-tcp-definition.html#ndbparam-tcp-sendbuffermemory)， 或两者。

-   [](<>) [`总发送缓冲区内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-totalsendbuffermemory)

     [](<>)

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

    如果设置了这个参数，它的最小允许值是256KB；0 表示该参数尚未设置。有关更多详细信息，请参阅[第 23.4.3.14 节，“配置 NDB 集群发送缓冲区参数”](mysql-cluster-config-send-buffers.html).

    也可以看看[第 23.6.7 节，“在线添加 NDB Cluster 数据节点”](mysql-cluster-online-add-node.html).

[](<>)**重做日志过度提交处理。**当花费太多时间将重做日志刷新到磁盘时，可以控制数据节点对操作的处理。当给定的重做日志刷新时间超过[`RedoOverCommitLimit`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-redoovercommitlimit)秒，超过[`RedoOverCommitCounter`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-redoovercommitcounter)次，导致任何挂起的事务被中止。发生这种情况时，发送事务的 API 节点可以处理应该提交的操作，方法是对操作进行排队并重试它们，或者通过中止它们，由下式确定[`DefaultOperationRedoProblemAction`](mysql-cluster-api-definition.html#ndbparam-api-defaultoperationredoproblemaction).在 API 节点执行此操作之前，用于设置超时和可能超过的次数的数据节点配置参数在以下列表中进行了描述：

-   [](<>) [`RedoOverCommitCounter`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-redoovercommitcounter)

    [](<>)

    [](<>)

    | 版本（或更高版本） | 新开发银行 8.0.13 |
    | --------- | ------------ |
    | 类型或单位 | 数字 |
    | 默认 | 3 |
    | 范围 | 1 - 4294967039 (0xFFFFFEFF) |
    | 版本（或更高版本） | NDB 8.0.19 |
    | 类型或单位 | 数字的 |
    | 违约 | 3. |
    | 范围 | 1-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    什么时候[`氧化还原极限`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-redoovercommitlimit)当尝试多次或多次将给定的重做日志写入磁盘时，会超过此值，因此未提交的任何事务都会被中止，并且这些事务中的任何一个产生的API节点都会根据其值处理构成这些事务的操作[`DefaultOperationRedoProblemAction`](mysql-cluster-api-definition.html#ndbparam-api-defaultoperationredoproblemaction)（通过排队等待重新尝试的操作，或中止这些操作）。

-   [](<>) [`氧化还原极限`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-redoovercommitlimit)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 秒 |
    | 违约 | 20 |
    | 范围 | 1-4294967039（0xFFFFFEFF） |
    | 版本（或更高版本） | NDB 8.0.19 |
    | 类型或单位 | 秒 |
    | 违约 | 20 |
    | 范围 | 1-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    此参数设置超时前尝试将给定重做日志写入磁盘的上限（以秒为单位）。数据节点尝试刷新此重做日志但花费的时间超过`氧化还原极限`，并与[`氧化还原计数器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-redoovercommitcounter)，并且当刷新所用的时间超过该参数的值时，由于刷新超时而未提交的任何事务都将被中止。当这种情况发生时，这些事务中任何一个的源API节点都会根据自己的权限处理组成这些事务的操作[`DefaultOperationRedoProblemAction`](mysql-cluster-api-definition.html#ndbparam-api-defaultoperationredoproblemaction)设置（它可以将要重试的操作排队，也可以中止这些操作）。

**控制重启尝试。**当数据节点无法使用[`MaxStartFailRetries`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxstartfailretries)和[`StartFailRetryDelay`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startfailretrydelay)数据节点配置参数。

[`MaxStartFailRetries`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxstartfailretries)限制在放弃启动数据节点之前进行的重试总数，[`StartFailRetryDelay`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startfailretrydelay)设置重试尝试之间的秒数。以下列出了这些参数：

-   [](<>) [`StartFailRetryDelay`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startfailretrydelay)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 0 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    使用此参数设置启动失败事件中数据节点尝试重新启动之间的秒数。默认值为0（无延迟）。

    这个参数和[`MaxStartFailRetries`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxstartfailretries)除非[`StopOnError`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-stoponerror)等于0。

-   [](<>) [`MaxStartFailRetries`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxstartfailretries)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 未签名 |
    | 违约 | 3. |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    使用此参数可以限制数据节点在启动失败时尝试重新启动的次数。默认值为3次尝试。

    这个参数和[`StartFailRetryDelay`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-startfailretrydelay)除非[`StopOnError`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-stoponerror)等于0。

[](<>)**NDB指数统计参数。**  [](<>)下表中的参数与NDB索引统计信息生成有关。

-   [](<>) [`IndexStatAutoCreate`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatautocreate)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0, 1 |
    | 版本（或更高版本） | NDB 8.0.27 |
    | 类型或单位 | 整数 |
    | 违约 | 1. |
    | 范围 | 0, 1 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    创建索引时启用（设置为1）或禁用（设置为0）自动统计信息收集。

-   [](<>) [`IndexStatAutoUpdate`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatautoupdate)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 整数 |
    | 违约 | 0 |
    | 范围 | 0, 1 |
    | 版本（或更高版本） | NDB 8.0.27 |
    | 类型或单位 | 整数 |
    | 违约 | 1. |
    | 范围 | 0, 1 |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | N（NDB 8.0.13） |

    启用（设置为1）或禁用（设置为0）对索引的更改监控，并在检测到这些更改时触发自动统计信息更新。触发更新所需的更改程度由[`IndexStatTriggerPct`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstattriggerpct)和[`IndexStateTriggerScale`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstattriggerscale)选项。

-   [](<>) [`IndexStatSaveSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatsavesize)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 字节 |
    | 违约 | 32768 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    中任何给定索引的已保存统计信息所允许的最大字节空间[`NDB`](mysql-cluster.html)系统表和[**mysqld**](mysqld.html)内存缓存。

    无论大小限制如何，始终至少生产一个样品。这个尺寸是按比例的[`IndexStatSaveScale`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatsavescale).

    指定的大小[`IndexStatSaveSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatsavesize)按的值缩放`IndexStatTriggerPct`对于大指数，乘以0.01。这进一步乘以索引大小以2为底的对数。背景`IndexStatTriggerPct`等于0将禁用缩放效果。

-   [](<>) [`IndexStatSaveScale`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatsavescale)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 百分率 |
    | 违约 | 100 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    指定的大小[`IndexStatSaveSize`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatsavesize)按的值缩放`IndexStatTriggerPct`对于大指数，乘以0.01。这进一步乘以索引大小以2为底的对数。背景`IndexStatTriggerPct`等于0将禁用缩放效果。

-   [](<>) [`IndexStatTriggerPct`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstattriggerpct)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 百分率 |
    | 违约 | 100 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    触发索引统计信息更新的更新百分比变化。该值按比例缩放[`IndexStateTriggerScale`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstattriggerscale)。您可以通过设置`IndexStatTriggerPct`到0。

-   [](<>) [`IndexStateTriggerScale`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstattriggerscale)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 百分率 |
    | 违约 | 100 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    规模[`IndexStatTriggerPct`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstattriggerpct)对于一个大的索引，这个数量乘以0.01。值为0将禁用缩放。

-   [](<>) [`IndexStateUpdateDelay`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexstatupdatedelay)

    [](<>)

    [](<>)

    | 版本（或更高版本） | NDB 8.0.13 |
    | --------- | ---------- |
    | 类型或单位 | 秒 |
    | 违约 | 60 |
    | 范围 | 0-4294967039（0xFFFFFEFF） |
    | [重启类型](mysql-cluster-ndbd-definition.html#mysql-cluster-ndbd-definition-restart-types) | IN（NDB 8.0.13） |

    给定索引的自动索引统计数据更新之间的最小延迟（秒）。将此变量设置为0将禁用任何延迟。默认值为60秒。

[](<>)**重启类型。**下表显示了本节中参数说明使用的重启类型的相关信息：

[](<>)

**表23.16 NDB群集重启类型**

| 象征 | 重启类型 | 描述 |
| --- | ---- | --- |
| N | 节点 | 可以使用滚动重新启动来更新参数（请参见[第23.6.5节，“执行NDB集群的滚动重启”](mysql-cluster-rolling-restart.html)) |
| S | 系统 | 必须完全关闭所有群集节点，然后重新启动，才能更改此参数 |
| 我 | 最初的 | 必须使用[`--首字母`](mysql-cluster-programs-ndbd.html#option_ndbd_initial)选项 |
