在NDB群集中定义SQL和其他API节点
文件中的[mysqld]
和[api]
部分config.ini
定义用于访问群集数据的MySQL服务器(SQL节点)和其他应用程序(API节点)的行为。无需显示任何参数。如果未提供计算机或主机名,则任何主机都可以使用此SQL或API节点。
一般而言,一[mysqld]
节用于指示为群集提供SQL接口的MySQL服务器,一[api]
节用于除mysqld进程之外的其他访问群集数据的应用程序,但这两个名称实际上是同义词。例如,您可以在一部分中列出充当SQL节点的MySQL服务器的参数[api]
。
注意有关NDB群集的MySQL服务器选项的讨论,请参见“ NDB群集的MySQL服务器选项”。有关与NDB群集相关的MySQL服务器系统变量的信息,请参见“ NDB群集系统变量”。
Id
该表提供了Id API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 未签名 默认 [没有] 范围 1-255 重新启动类型 是 的
Id
是用于识别所有群集内部消息中的节点的整数值。允许的值范围是1到255(包括1和255)。无论节点的类型如何,该值对于群集中的每个节点都必须是唯一的。注意
在NDB 8.0.18及更高版本中,数据节点ID必须小于145。如果计划部署大量数据节点,则最好将API节点(和管理节点)的节点ID限制为更大的值。大于144。(在NDB 8.0.18之前,数据节点ID的最大支持值为48。)
NodeId
是标识API节点时首选的参数名称。(Id
继续支持向后兼容,但是现在不建议使用,并且在使用时会生成警告。将来还会删除它。)ConnectionMap
该表提供了ConnectionMap API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 string 默认 [没有] 范围 ... 重新启动类型 ñ 指定要连接的数据节点。
NodeId
该表提供了NodeId API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 未签名 默认 [没有] 范围 1-255 重新启动类型 是 的
NodeId
是用于识别所有群集内部消息中的节点的整数值。允许的值范围是1到255(包括1和255)。无论节点的类型如何,该值对于群集中的每个节点都必须是唯一的。注意
在NDB 8.0.18及更高版本中,数据节点ID必须小于145。如果计划部署大量数据节点,则最好将API节点(和管理节点)的节点ID限制为更大的值。大于144。(在NDB 8.0.18之前,数据节点ID的最大支持值为48。)
NodeId
是标识管理节点时首选的参数名称。别名()Id
在NDB Cluster的非常旧的版本中用于此目的,并且为了向后兼容而继续受支持。现在已弃用它,并在使用时生成警告,并且在以后的NDB Cluster版本中可能会删除它。ExecuteOnComputer
该表提供了ExecuteOnComputer API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 名称 默认 [没有] 范围 ... 重新启动类型 小号 这是指在配置文件
Id
的[computer]
一部分中定义的其中一台计算机(主机)的集合。重要
不建议使用此参数,并且在将来的版本中可能会删除该参数。请改用
HostName
参数。HostName
该表提供了HostName API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 名称或IP地址 默认 [没有] 范围 ... 重新启动类型 ñ 指定此参数将定义SQL节点(API节点)所在的计算机的主机名。要指定主机名,此参数或
ExecuteOnComputer
必需。如果在文件的给定或部分中未指定
HostName
或未ExecuteOnComputer
指定,则SQL或API节点可以使用来自任何主机的相应“插槽”进行连接,该主机可以与管理服务器主机建立网络连接。这不同于用于数据节点,其中默认行为被假定为,除非另有规定。[mysql]
[api]
config.ini
localhost
HostName
LocationDomainId
该表提供了LocationDomainId API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 整数 默认 0 范围 0-16 重新启动类型 小号 将SQL或其他API节点分配给云中的特定可用性域(也称为可用性区域)。通过通知
NDB
哪些节点在哪个可用性域中,可以通过以下方式在云环境中提高性能:- 如果在同一节点上找不到请求的数据,则可以将读取定向到同一可用性域中的另一个节点。
- 保证不同可用性域中节点之间的通信可以使用
NDB
传输器的WAN支持,而无需任何进一步的人工干预。 - 传输者的组号可以基于使用哪个可用性域,以便SQL和其他API节点也尽可能与同一可用性域中的本地数据节点通信。
- 可以从不存在数据节点的可用性域中选择仲裁程序,或者,如果找不到这样的可用性域,则可以从第三个可用性域中选择仲裁器。
LocationDomainId
取一个介于0和16之间(含0和16)的整数值,默认值为0;使用0等于不设置参数。ArbitrationRank
该表提供ArbitrationRank API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 0-2 默认 0 范围 0-2 重新启动类型 ñ 此参数定义哪些节点可以充当仲裁器。管理节点和SQL节点都可以是仲裁器。值为0表示从不将给定节点用作仲裁器,值为1则将该节点作为仲裁器具有较高的优先级,而值为2则将其赋予较低的优先级。普通配置使用管理服务器作为仲裁器,将其设置
ArbitrationRank
为1(管理节点的默认值),将所有SQL节点的默认值设置为0(SQL节点的默认值)。通过
ArbitrationRank
在所有管理和SQL节点上将其设置为0,可以完全禁用仲裁。您也可以通过覆盖此参数来控制仲裁。为此,请在全局配置文件Arbitration
的[ndbd default]
部分中设置参数config.ini
。ArbitrationDelay
该表提供ArbitrationDelay API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 毫秒 默认 0 范围 0-4294967039(0xFFFFFEFF) 重新启动类型 ñ 将此参数设置为除0以外的任何其他值(默认值)意味着仲裁程序对仲裁请求的响应将延迟指定的毫秒数。通常没有必要更改此值。
BatchByteSize
该表提供了BatchByteSize API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 个字节 默认 16K 范围 1K-1M 重新启动类型 ñ 对于转换为索引的全表扫描或范围扫描的查询,获取适当大小的批记录以获得最佳性能很重要。可以根据记录数(
BatchSize
)和字节数(BatchByteSize
)设置适当的大小。实际批量大小受两个参数限制。根据设置此参数的方式,执行查询的速度可以相差40%以上。
此参数以字节为单位。默认值为16K。
BatchSize
该表提供了BatchSize API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 记录 默认 256 范围 1-992 重新启动类型 ñ 该参数以记录数为单位,默认设置为256。最大大小为992。
ExtraSendBufferMemory
该表提供ExtraSendBufferMemory API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 个字节 默认 0 范围 0-4294967039(0xFFFFFEFF) 重新启动类型 ñ 此参数指定转运发送缓冲存储器除了分配给任何已经使用被设定的量
TotalSendBufferMemory
,SendBufferMemory
或两者。HeartbeatThreadPriority
该表提供了HeartbeatThreadPriority API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 string 默认 [没有] 范围 ... 重新启动类型 小号 使用此参数可以设置管理和API节点的心跳线线程的调度策略和优先级。设置此参数的语法如下所示:
HeartbeatThreadPriority = policy[, priority] policy: {FIFO | RR}
设置此参数时,必须指定一个策略。这是(先进先出)
FIFO
或RR
(循环赛)之一。可以选择后面跟优先级(整数)。MaxScanBatchSize
该表提供MaxScanBatchSize API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 个字节 默认 256K 范围 32K-1600万 重新启动类型 ñ 批次大小是从每个数据节点发送的每个批次的大小。大多数扫描是并行执行的,以防止MySQL Server并行接收来自多个节点的过多数据。此参数为所有节点上的总批大小设置限制。
此参数的默认值设置为256KB。最大大小为16MB。
TotalSendBufferMemory
该表提供了TotalSendBufferMemory API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 个字节 默认 0 范围 256K-4294967039(0xFFFFFEFF) 重新启动类型 ñ 此参数用于确定在此节点上分配的内存总量,以在所有已配置的传输器之间共享共享发送缓冲区内存。
如果设置了此参数,则其最小允许值为256KB;0表示尚未设置参数。有关更多详细信息,请参见“配置NDB群集发送缓冲区参数”。
AutoReconnect
该表提供“自动重新连接API”节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 布尔值 默认 假 范围 真假 重新启动类型 ñ false
默认情况下,此参数。这会强制断开连接的API节点(包括充当SQL节点的MySQL服务器)使用与群集的新连接,而不是尝试重新使用现有的连接,因为重新使用连接会在使用动态分配的节点ID时引起问题。错误#45921)注意
可以使用NDB API覆盖此参数。有关更多信息,请参见 Ndb_cluster_connection :: set_auto_reconnect()和 Ndb_cluster_connection :: get_auto_reconnect()。
DefaultOperationRedoProblemAction
该表提供DefaultOperationRedoProblemAction API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 列举 默认 队列 范围 中止,排队 重新启动类型 小号 当花费太多时间将重做日志刷新到磁盘时,此参数(以及
RedoOverCommitLimit
和RedoOverCommitCounter
)控制数据节点对操作的处理。当给定的重做日志刷新花费的时间超过RedoOverCommitLimit
几秒钟,超过RedoOverCommitCounter
几倍,从而导致任何挂起的事务中止时,就会发生这种情况。发生这种情况时,节点可以根据
DefaultOperationRedoProblemAction
此处列出的的值以两种方式之一进行响应:ABORT
:来自中止的事务的任何挂起操作也将中止。QUEUE
:来自中止的事务的待处理操作将排队等待重试。这是默认值。当重做日志空间不足时(即发生P_TAIL_PROBLEM错误时),挂起操作仍会中止。
DefaultHashMapSize
此表提供DefaultHashMapSize API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 水桶 默认 3840 范围 0-3840 重新启动类型 ñ NDB
使用此参数的表哈希映射的大小是可配置的。DefaultHashMapSize
可以采用三个可能的值(0、240、3840)中的任何一个。下表描述了这些值及其作用。DefaultHashMapSize参数值
值 说明/效果 0 对于集群中所有数据节点和API节点中的此参数,请使用最小值集(如果有)。如果未在任何数据或API节点上设置它,请使用默认值。 240 旧的默认哈希图大小 3840 NDB 8.0中默认使用的哈希映射大小 此参数的最初预期用途是促进与较早的NDB Cluster版本之间的升级和降级,在该版本中,哈希映射大小有所不同,原因是此更改在其他方面不向后兼容。从NDB Cluster 8.0升级或降级时,这不是问题。
Wan
该表提供了wan API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 布尔值 默认 假 范围 真假 重新启动类型 ñ 默认使用WAN TCP设置。
ConnectBackoffMaxTime
该表提供ConnectBackoffMaxTime API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 整数 默认 0 范围 0-4294967039(0xFFFFFEFF) 重新启动类型 ñ 在具有许多未启动的数据节点的NDB群集中,可以提高此参数的值,以规避与尚未开始在群集中起作用的数据节点的连接尝试,并缓和管理节点的高流量。只要API节点未连接到任何新的数据节点,
StartConnectBackoffMaxTime
就会应用参数的值;否则,ConnectBackoffMaxTime
用于确定两次连接尝试之间等待的时间长度(以毫秒为单位)。时间流逝过程中节点的连接尝试计算运行时间这个参数时,没有考虑到。从大约100 ms的延迟开始,以大约100 ms的分辨率应用超时;对于每次后续尝试,此时间段的长度都会加倍,直到达到
ConnectBackoffMaxTime
毫秒为止,最长为100000 ms(100s)。一旦API节点连接到数据节点,并且该节点(在心跳消息中)报告它已连接到其他数据节点,则到这些数据节点的连接尝试将不再受此参数影响,并且此后每100毫秒进行一次直到连接。数据节点启动后,就可以
HeartbeatIntervalDbApi
通知API节点已发生这种情况。StartConnectBackoffMaxTime
该表提供StartConnectBackoffMaxTime API节点配置参数的类型和值信息
属性 值 版本(或更高版本) NDB 8.0.13 类型或单位 整数 默认 0 范围 0-4294967039(0xFFFFFEFF) 重新启动类型 ñ 在具有许多未启动的数据节点的NDB群集中,可以提高此参数的值,以规避与尚未开始在群集中起作用的数据节点的连接尝试,并缓和管理节点的高流量。只要API节点未连接到任何新的数据节点,
StartConnectBackoffMaxTime
就会应用参数的值;否则,ConnectBackoffMaxTime
用于确定两次连接尝试之间等待的时间长度(以毫秒为单位)。时间流逝过程中节点的连接尝试计算运行时间这个参数时,没有考虑到。从大约100 ms的延迟开始,以大约100 ms的分辨率应用超时;对于每次后续尝试,此时间段的长度都会加倍,直到达到
StartConnectBackoffMaxTime
毫秒为止,最长为100000 ms(100s)。一旦API节点连接到数据节点,并且该节点(在心跳消息中)报告它已连接到其他数据节点,则到这些数据节点的连接尝试将不再受此参数影响,并且此后每100毫秒进行一次直到连接。数据节点启动后,就可以
HeartbeatIntervalDbApi
通知API节点已发生这种情况。
API节点调试参数。您可以使用ApiVerbose
配置参数来启用给定API节点的调试输出。此参数为整数值。默认值为0,并禁用此类调试;1启用调试输出到集群日志;2也添加了DBDICT
调试输出。(缺陷号20638450)另请参见 DUMP 1229。
您还可以从SHOW STATUS
在MySQL客户端中使用NDB群集SQL节点运行的MySQL服务器获取信息,如下所示:
mysql>SHOW STATUS LIKE 'ndb%'; +----------------------------- +---------------- + | Variable_name | Value | +----------------------------- +---------------- + | Ndb_cluster_node_id | 5 | | Ndb_config_from_host | 198.51.100.112 | | Ndb_config_from_port | 1186 | | Ndb_number_of_storage_nodes | 4 | +----------------------------- +---------------- + 4 rows in set (0.02 sec)
有关此语句的输出中出现的状态变量的信息,请参见“ NDB群集状态变量”。
注意要将新的SQL或API节点添加到正在运行的NDB群集的配置中,必须在向文件(如果使用多个管理服务器,如果有一个或多个文件)中添加新的
[mysqld]
或[api]
节之后,对所有群集节点执行滚动重启。config.ini
。必须先完成此操作,然后新的SQL或API节点才能连接到群集。这是不必要执行群集的任何重新启动,如果新的SQL或API节点可以使用以前未使用的API槽在群集配置以连接到群集。
重新启动类型。下表显示了本节中的参数说明所使用的有关重新启动类型的信息:
NDB群集重新启动类型
符号 | 重新启动类型 | 描述 |
---|---|---|
ñ | 节点 | 可以使用滚动重启来更新参数(请参见“执行NDB群集的滚动重启”) |
小号 | 系统 | 必须完全关闭所有群集节点,然后重新启动,以更改此参数 |
一世 | 初始 | 必须使用--initial 选项重新启动数据节点 |