25.4 NDB Cluster 的配置
原文:
dev.mysql.com/doc/refman/8.0/en/mysql-cluster-configuration.html
25.4.1 NDB Cluster 的快速测试设置
25.4.2 NDB Cluster 配置参数、选项和变量概述
25.4.3 NDB Cluster 配置文件
25.4.4 使用高速互连与 NDB Cluster
作为 NDB Cluster 的一部分的 MySQL 服务器在一个主要方面与普通(非集群)MySQL 服务器不同,即它使用NDB
存储引擎。这个引擎有时也被称为NDBCLUSTER
,尽管更倾向于使用NDB
。
为了避免不必要的资源分配,默认情况下配置服务器时会禁用NDB
存储引擎。要启用NDB
,必须修改服务器的my.cnf
配置文件,或使用--ndbcluster
选项启动服务器。
这个 MySQL 服务器是集群的一部分,因此它还必须知道如何访问管理节点以获取集群配置数据。默认行为是在localhost
上查找管理节点。但是,如果您需要指定其位置在其他地方,可以在my.cnf
中或使用mysql客户端来完成。在使用NDB
存储引擎之前,至少必须有一个管理节点运行,以及任何所需的数据节点。
有关--ndbcluster
和其他特定于 NDB Cluster 的mysqld选项的更多信息,请参见 Section 25.4.3.9.1,“NDB Cluster 的 MySQL 服务器选项”。
有关安装 NDB Cluster 的一般信息,请参见 Section 25.3,“NDB Cluster 安装”。
25.4.1 NDB Cluster 的快速测试设置
为了让您熟悉基础知识,我们描述了一个功能性 NDB Cluster 的最简配置。之后,您应该能够根据本章其他相关部分提供的信息设计您所需的设置。
首先,您需要创建一个配置目录,比如/var/lib/mysql-cluster
,通过以系统root
用户身份执行以下命令:
$> mkdir /var/lib/mysql-cluster
在这个目录中,创建一个名为config.ini
的文件,其中包含以下信息。根据您的系统需要,替换HostName
和DataDir
的适当值。
# file "config.ini" - showing minimal setup consisting of 1 data node, # 1 management server, and 3 MySQL servers. # The empty default sections are not required, and are shown only for # the sake of completeness. # Data nodes must provide a hostname but MySQL Servers are not required # to do so. # If you don't know the hostname for your machine, use localhost. # The DataDir parameter also has a default value, but it is recommended to # set it explicitly. # Note: [db], [api], and [mgm] are aliases for [ndbd], [mysqld], and [ndb_mgmd], # respectively. [db] is deprecated and should not be used in new installations. [ndbd default] NoOfReplicas= 1 [mysqld default] [ndb_mgmd default] [tcp default] [ndb_mgmd] HostName= myhost.example.com [ndbd] HostName= myhost.example.com DataDir= /var/lib/mysql-cluster [mysqld] [mysqld] [mysqld]
您现在可以启动ndb_mgmd管理服务器了。默认情况下,它会尝试读取当前工作目录中的config.ini
文件,因此请切换到文件所在的目录,然后调用ndb_mgmd:
$> cd /var/lib/mysql-cluster $> ndb_mgmd
然后通过运行ndbd来启动单个数据节点:
$> ndbd
默认情况下,ndbd 在端口 1186 上查找管理服务器的localhost
。
注意
如果您从二进制 tarball 安装了 MySQL,则必须明确指定ndb_mgmd和ndbd服务器的路径。(通常可以在/usr/local/mysql/bin
中找到。)
最后,切换到 MySQL 数据目录(通常为/var/lib/mysql
或/usr/local/mysql/data
),确保my.cnf
文件包含启用 NDB 存储引擎所需的选项:
[mysqld] ndbcluster
您现在可以像往常一样启动 MySQL 服务器了:
$> mysqld_safe --user=mysql &
等待片刻以确保 MySQL 服务器正常���行。如果看到通知mysql ended
,请检查服务器的.err
文件以查找问题所在。
如果到目前为止一切顺利,您现在可以开始使用集群了。连接到服务器并验证NDBCLUSTER
存储引擎是否已启用:
$> mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 8.0.36 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SHOW ENGINES\G ... *************************** 12\. row *************************** Engine: NDBCLUSTER Support: YES Comment: Clustered, fault-tolerant, memory-based tables *************************** 13\. row *************************** Engine: NDB Support: YES Comment: Alias for NDBCLUSTER ...
在上面示例输出中显示的行号可能与您的系统上显示的行号不同,这取决于您的服务器配置方式。
尝试创建一个NDBCLUSTER
表:
$> mysql mysql> USE test; Database changed mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER; Query OK, 0 rows affected (0.09 sec) mysql> SHOW CREATE TABLE ctest \G *************************** 1\. row *************************** Table: ctest Create Table: CREATE TABLE `ctest` ( `i` int(11) default NULL ) ENGINE=ndbcluster DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec)
要检查节点是否正确设置,请启动管理客户端:
$> ndb_mgm
使用管理客户端内的SHOW命令获取有关集群状态的报告:
ndb_mgm> SHOW Cluster Configuration --------------------- [ndbd(NDB)] 1 node(s) id=2 @127.0.0.1 (Version: 8.0.35-ndb-8.0.35, Nodegroup: 0, *) [ndb_mgmd(MGM)] 1 node(s) id=1 @127.0.0.1 (Version: 8.0.35-ndb-8.0.35) [mysqld(API)] 3 node(s) id=3 @127.0.0.1 (Version: 8.0.35-ndb-8.0.35) id=4 (not connected, accepting connect from any host) id=5 (not connected, accepting connect from any host)
此时,您已成功设置了一个可工作的 NDB 集群。现在,您可以使用任何使用ENGINE=NDBCLUSTER
或其别名ENGINE=NDB
创建的表在集群中存储数据。
25.4.2 NDB 集群配置参数、选项和变量概述
原文:
dev.mysql.com/doc/refman/8.0/en/mysql-cluster-configuration-overview.html
25.4.2.1 NDB 集群数据节点配置参数
25.4.2.2 NDB 集群管理节点配置参数
25.4.2.3 NDB 集群 SQL 节点和 API 节点配置参数
25.4.2.4 其他 NDB 集群配置参数
25.4.2.5 NDB 集群 mysqld 选项和变量参考
接下来的几个部分提供了用于管理节点行为各个方面的config.ini
文件中使用的 NDB 集群节点配置参数的摘要表,以及由mysqld 从my.cnf
文件或从命令行读取的选项和变量的摘要表,当作为 NDB 集群进程运行时。每个节点参数表列出了给定类型(ndbd
、ndb_mgmd
、mysqld
、computer
、tcp
或shm
)的参数、选项或变量,以及适用的默认值、最小值和最大值。
重新启动节点时的考虑。 对于节点参数,这些表还指示所需的重新启动类型(节点重新启动或系统重新启动)以及是否必须使用--initial
来更改给定配置参数的值。在执行节点重新启动或初始节点重新启动时,必须依次重新启动所有集群的数据节点(也称为滚动重启)。可以在线更新标记为node
的集群配置参数,即在不关闭集群的情况下以这种方式进行。初始节点重新启动需要使用--initial
选项重新启动每个ndbd 进程。
系统重新启动需要完全关闭并重新启动整个集群。初始系统重新启动需要备份集群,在关闭后擦除集群文件系统,然后在重新启动后从备份中恢复。
在任何集群重新启动中,所有集群的管理服务器都必须重新启动,以便它们读取更新后的配置参数值。
重要提示
数值集群参数的值通常可以增加而不会出现任何问题,尽管建议逐步进行,以相对较小的增量进行此类调整。许多这些参数可以在线增加,使用滚动重启。
然而,减少这些参数的值——无论是通过节点重启、节点初始重启,甚至是整个集群系统的重启——都不应轻率进行;建议您在经过仔细规划和测试后才这样做。特别是涉及内存使用和磁盘空间的那些参数,如MaxNoOfTables
、MaxNoOfOrderedIndexes
和MaxNoOfUniqueHashIndexes
。此外,通常情况下,与内存和磁盘使用相关的配置参数可以通过简单的节点重启来提高,但需要通过初始节点重启来降低。
因为其中一些参数可用于配置多种类型的集群节点,所以它们可能会出现在多个表中。
注意
4294967039
经常出现在这些表中作为最大值。这个值在NDBCLUSTER
源代码中被定义为MAX_INT_RNIL
,等于0xFFFFFEFF
,或者2³² − 2⁸ − 1
。
原文:
dev.mysql.com/doc/refman/8.0/en/mysql-cluster-params-ndbd.html
25.4.2.1 NDB Cluster Data Node Configuration Parameters
本节中的列表提供有关在config.ini
文件的[ndbd]
或[ndbd default]
部分中用于配置 NDB Cluster 数据��点的参数的信息。有关每个参数的详细描述和其他附加信息,请参见 Section 25.4.3.6, “Defining NDB Cluster Data Nodes”。
这些参数也适用于ndbmtd"),即ndbd的多线程版本。接下来是针对ndbmtd")的特定参数列表。
Arbitration
: 在节点故障事件中避免脑裂问题时应如何执行仲裁。ArbitrationTimeout
: 数据库分区等待仲裁信号的最长时间(毫秒)。BackupDataBufferSize
: 备份数据缓冲区的默认大小(以字节为单位)。BackupDataDir
: 存储备份的路径。请注意,该设置始终附加字符串’/BACKUP’,因此有效默认值为 FileSystemPath/BACKUP。BackupDiskWriteSpeedPct
: 设置数据节点分配的最大写入速度(MaxDiskWriteSpeed)的百分比,用于在启动备份时为 LCPs 保留。BackupLogBufferSize
: 备份日志缓冲区的默认大小(以字节为单位)。BackupMaxWriteSize
: 备份所做的文件系统写入的最大大小(以字节为单位)。BackupMemory
: 每个节点为备份分配的总内存(以字节为单位)。BackupReportFrequency
: 备份期间备份状态报告的频率(以秒为单位)。BackupWriteSize
: 备份所做的文件系统写入的默认大小(以字节为单位)。BatchSizePerLocalScan
: 用于计算保持锁扫描的锁记录数。BuildIndexThreads
: 在系统或节点重新启动期间用于构建有序索引的线程数。在运行 ndb_restore --rebuild-indexes 时也适用。将此参数设置为 0 会禁用多线程构建有序索引。CompressedBackup
: 在写入时使用 zlib 压缩备份。CompressedLCP
: 使用 zlib 编写压缩的 LCP。ConnectCheckIntervalDelay
: 数据节点连接性检查阶段之间的时间间隔。如果在 1 个间隔后没有响应,则数据节点被视为可疑,在 2 个间隔后被视为死亡。CrashOnCorruptedTuple
: 启用后,每当检测到损坏的元组时,强制节点关闭。DataDir
: 此节点的数据目录。DataMemory
: 每个数据节点为存储数据分配的字节数;取决于可用系统 RAM 和 IndexMemory 的大小。DefaultHashMapSize
: 设置用于表哈希映射的大小(桶数)。支持三个值:0、240 和 3840。DictTrace
: 启用 DBDICT 调试;用于 NDB 开发。DiskDataUsingSameDisk
: 如果磁盘数据表空间位于不同物理磁盘上,则设置为 false。DiskIOThreadPool
: 用于文件访问的未绑定线程数��仅适用于磁盘数据。Diskless
: 在不使用磁盘的情况下运行。DiskPageBufferEntries
: 在 DiskPageBufferMemory 中分配的内存;非常大的磁盘事务可能需要增加此值。DiskPageBufferMemory
: 每个数据节点为磁盘页缓冲区缓存分配的字节数。DiskSyncSize
: 在强制同步之前写入文件的数据量。EnablePartialLcp
: 启用部分 LCP(true);如果禁用(false),则所有 LCP 都写入完整检查点。EnableRedoControl
: 启用用于控制重做日志使用情况的自适应检查点速度。EncryptedFileSystem
: 加密本地检查点和表空间文件。实验性功能;不支持生产环境。EventLogBufferSize
: 数据节点内用于 NDB 日志事件的循环缓冲区大小。ExecuteOnComputer
: 引用先前定义的计算机的字符串。ExtraSendBufferMemory
: 用于发送缓冲区的内存,额外分配给 TotalSendBufferMemory 或 SendBufferMemory。默认值(0)允许最多 16MB。FileSystemPath
: 数据节点存储数据的目录路径(目录必须存在)。FileSystemPathDataFiles
: 数据节点存储其磁盘数据文件的目录路径。默认���为 FilesystemPathDD(如果已设置);否则,如果已设置 FilesystemPath,则使用该值;否则,使用 DataDir 的值。FileSystemPathDD
: 数据节点存储其磁盘数据和撤销文件的目录路径。默认值为 FileSystemPath(如果已设置);否则,使用 DataDir 的值。FileSystemPathUndoFiles
: 数据节点为磁盘数据存储撤销文件的目录路径。默认值为 FilesystemPathDD(如果已设置);否则,如果已设置 FilesystemPath,则使用该值;否则,使用 DataDir 的值。FragmentLogFileSize
: 每个重做日志文件的大小。HeartbeatIntervalDbApi
: API 节点与数据节点之间心跳的时间间隔。(连续错过 3 次心跳后,API 连接关闭)。HeartbeatIntervalDbDb
: 数据节点之间心跳的时间间隔;如果连续错过 3 次心跳,则数据节点被视为已死亡。HeartbeatOrder
: 设置数据节点检查彼此心跳的顺序,以确定给定节点是否仍处于活动状态并连接到集群。必须对所有数据节点为零,或对所有数据节点为不同的非零值;有关更多指导,请参阅文档。HostName
: 此数据节点的主机名或 IP 地址。IndexMemory
: 每个数据节点用于存储索引的字节数;取决于可用系统 RAM 和 DataMemory 的大小。IndexStatAutoCreate
: 在创建索引时启用/禁用自动统计信息收集。IndexStatAutoUpdate
: 监视索引的更改并触发自动统计信息更新。IndexStatSaveScale
: 用于确定存储的索引统计信息大小的缩放因子。IndexStatSaveSize
: 每个索引保存的统计信息的最大字节数。IndexStatTriggerPct
: DML 操作的索引统计信息更新的阈值百分比变化。该值由 IndexStatTriggerScale 缩小。IndexStatTriggerScale
: 将 IndexStatTriggerPct 按照此数量缩小,乘以索引大小的以 2 为底的对数,用于大型索引。设置为 0 以禁用缩放。IndexStatUpdateDelay
: 给定索引的自动索引统计信息更新之间的最小延迟。0 表示没��延迟。InitFragmentLogFiles
: 使用稀疏或完整格式初始化片段日志文件。InitialLogFileGroup
: 描述在初始启动期间创建的日志文件组。查看文档以获取格式。InitialNoOfOpenFiles
: 每个数据节点初始打开文件数。(每个文件创建一个线程)。InitialTablespace
: 描述在初始启动期间创建的表空间。查看文档以获取格式。InsertRecoveryWork
: 用于插入行的 RecoveryWork 百分比;除非使用部分本地检查点,否则不起作用。KeepAliveSendInterval
: 数据节点之间链接发送保持活动信号的时间间隔,以毫秒为单位。设置为 0 以禁用。LateAlloc
: 在与管理服务器建立连接后分配内存。LcpScanProgressTimeout
: 本地检查点片段扫描在节点关闭之前可以停滞的最长时间,以确保系统范围内的 LCP 进度。使用 0 来禁用。LocationDomainId
: 将此数据节点分配给特定的可用域或区域。0(默认)表示未设置。LockExecuteThreadToCPU
: 逗号分隔的 CPU ID 列表。LockMaintThreadsToCPU
: 指示哪个 CPU 运行维护线程的 CPU ID。LockPagesInMainMemory
: 0=禁用锁定,1=内存分配后锁定,2=内存分配前锁定。LogLevelCheckpoint
: 本地和全局检查点信息的日志级别打印到标准输出。LogLevelCongestion
: 拥塞信息打印到标准输出的级别。LogLevelConnection
: 节点连接/断开信息打印到标准输出的级别。LogLevelError
: 传输器、心跳错误打印到标准输出。LogLevelInfo
: 心跳和日志信息打印到标准输出。LogLevelNodeRestart
: 节点重新启动和节点故障信息打印到标准输出的级别。LogLevelShutdown
: 节点关闭信息打印到标准输出的级别。LogLevelStartup
: 节点启动信息打印到标准输出的级别。LogLevelStatistic
: 事务、操作和传输器信息打印到标准输出的级别。LongMessageBuffer
: 每个数据节点为内部长消息分配的字节数。MaxAllocate
: 不再使用;没有效果。MaxBufferedEpochs
: 订阅节点可以滞后的允许的时代编号(未处理时代)数量。超过会导致滞后的订阅者被断开连接。MaxBufferedEpochBytes
: 为缓冲时代分配的总字节数。MaxDiskDataLatency
: 在开始中止事务之前,允许的磁盘访问平均延迟(毫秒)的最大值。MaxDiskWriteSpeed
: 当没有重新启动时,LCP 和备份每秒可写入的最大字节数。MaxDiskWriteSpeedOtherNodeRestart
: 当另一个节点重新启动时,LCP 和备份每秒可以写入的最大字节数。MaxDiskWriteSpeedOwnRestart
: 当此节点重新启动时,LCP 和备份每秒可以写入的最大字节数。MaxFKBuildBatchSize
: 用于构建外键的最大扫描批处理大小。增加此值可能加快外键构建速度,但也会影响正在进行的流量。MaxDMLOperationsPerTransaction
: 事务的限制大小;如果需要的 DML 操作超过此数量,则中止事务。MaxLCPStartDelay
: LCP 在检查检查点互斥锁(以允许其他数据节点完成元数据同步)之前轮询的时间(以便将自身放入锁队列,以便并行恢复表数据)的秒数。MaxNoOfAttributes
: 建议存储在数据库中���属性总数(所有表的总和)。MaxNoOfConcurrentIndexOperations
: 在一个数据节点上可以同时执行的索引操作的总数。MaxNoOfConcurrentOperations
: 事务协调器中操作记录的最大数量。MaxNoOfConcurrentScans
: 数据节点上同时执行的最大扫描数。MaxNoOfConcurrentSubOperations
: 并发订阅者操作的最大数量。MaxNoOfConcurrentTransactions
: 在此数据节点上同时执行的最大事务数,可以同时执行的事务总数为此值乘以集群中数据节点的数量。MaxNoOfFiredTriggers
: 在一个数据节点上可以同时触发的触发器总数。MaxNoOfLocalOperations
: 在此数据节点上定义的操作记录的最大数量。MaxNoOfLocalScans
: 在此数据节点上并行进行的片段扫描的最大数量。MaxNoOfOpenFiles
: 每个数据节点打开的文件的最大数量。(每个文件创建一个线程)。MaxNoOfOrderedIndexes
: 系统中可定义的有序索引总数。MaxNoOfSavedMessages
: 写入错误日志的最大错误消息数和保留的最大跟踪文件数。MaxNoOfSubscribers
: 订阅者的最大数量。MaxNoOfSubscriptions
: 订阅的最大数量(默认为 0 = MaxNoOfTables)。MaxNoOfTables
: 建议存储在数据库中的 NDB 表的总数。MaxNoOfTriggers
: 系统中可定义的触发器总数。MaxNoOfUniqueHashIndexes
: 系统中可定义的唯一哈希索引总数。MaxParallelCopyInstances
: 节点重启期间的并行复制数。默认值为 0,使用两个节点上的 LDM 数,最多为 16。MaxParallelScansPerFragment
: 每个片段的最大并行扫描数。一旦达到此限制,扫描将被串行化。MaxReorgBuildBatchSize
: 重新组织表分区时使用的最大扫描批量大小。增加此值可能加快表分区重新组织的速度,但也会影响正在进行的流量。MaxStartFailRetries
: 数据节点启动失败时的最大重试次数,要求 StopOnError = 0。将其设置为 0 会导致启动尝试无���继续。MaxUIBuildBatchSize
: 用于构建唯一键的最大扫描批量大小。增加此值可能加快唯一键的构建速度,但也会影响正在进行的流量。MemReportFrequency
: 内存报告的频率(以秒为单位);0 = 仅在超过百分比限制时报告。MinDiskWriteSpeed
: LCP 和备份每秒可写入的最小字节数。MinFreePct
: 保留用于重启的内存资源百分比。NodeGroup
: 数据节点所属的节点组;仅在集群的初始启动期间使用。NodeGroupTransporters
: 在同一节点组中节点之间使用的传输器数量。NodeId
: 在集群中唯一标识数据节点的编号。NoOfFragmentLogFiles
: 每个数据节点所属的 4 个文件集中每个 16 MB 重做日志文件的数量。NoOfReplicas
: 数据库中所有数据的副本数量。Numa
: (仅限 Linux;需要 libnuma)控制 NUMA 支持。将其设置为 0 允许系统确定数据节点进程的交错使用;设置为 1 表示由数据节点确定。ODirect
: 尽可能使用 O_DIRECT 文件读取和写入。ODirectSyncFlag
: O_DIRECT 写入被视为同步写入;当 ODirect 未启用、InitFragmentLogFiles 设置为 SPARSE 或两者都设置时将被忽略。RealtimeScheduler
: 当为 true 时,数据节点线程被调度为实时线程。默认值为 false。RecoveryWork
: LCP 文件的存储开销百分比:较大的值意味着在正常操作中工作较少,在恢复期间工作较多。RedoBuffer
: 每个数据节点用于写入重做日志的字节数。RedoOverCommitCounter
: 当超过 RedoOverCommitLimit 这么多次时,事务将被中止,并且操作将按照 DefaultOperationRedoProblemAction 指定的方式处理。RedoOverCommitLimit
: 每次刷新当前重做缓冲区所需时间超过这么多秒时,将比较已发生的次数与 RedoOverCommitCounter。RequireEncryptedBackup
: 备份是否必须加密(1 = 需要加密,否则为 0)。ReservedConcurrentIndexOperations
: 在一个数据节点上具有专用资源的同时索引操作的数量。ReservedConcurrentOperations
: 在一个数据节点上具有专用资源的事务协调器中同时操作的数量。保留并发扫描数
: 在一个数据节点上具有专用资源的同时扫描数。保留并发事务数
: 在一个数据节点上具有专用资源的同时事务数。保留触发器数
: 在一个数据节点上具有专用资源的触发器数。保留本地扫描数
: 在一个数据节点上具有专用资源的同时片段扫描数。保留事务缓冲区内存
: 分配给每个数据节点的键和属性数据的动态缓冲区空间(以字节为单位)。插入错误重启控制
: 插入错误导致的重启控制类型(当启用 StopOnError 时)。重启订阅者连接超时
: 数据节点等待订阅 API 节点连接的时间。设置为 0 以禁用超时,总是解析为最接近的整秒。调度执行计时器
: 在发送之前执行调度器的微秒数。调度器响应性
: 设置 NDB 调度器响应优化 0-10;较高的值提供更好的响应时间但降低吞吐量。调度器自旋计时器
: 在休眠之前执行调度器的微秒数。服务器端口
: 用于为来自 API 节点的传入连接设置传输器的端口。共享全局内存
: 为任何用途在每个数据节点上分配的总字节数。自旋方法
: 数据节点使用的自旋方法;详细信息请参阅文档。启动失败重试延迟
: 启动失败后重试之前的延迟时间(需要 StopOnError = 0)。启动失败超时
: 在终止之前等待的毫秒数(0=永远等待)。无节点组超时启动
: 在尝试启动之前等待无节点组的时间(0=永远)。StartPartialTimeout
: 尝试在所���节点都不完整的情况下启动之前等待的毫秒数。(0=永远等待)。StartPartitionedTimeout
: 尝试启动分区之前等待的毫秒数。(0=永远等待)。StartupStatusReportFrequency
: 启动过程中状态报告的频率。StopOnError
: 当设置为 0 时,数据节点会在节点故障后自动重新启动和恢复。StringMemory
: 字符串内存的默认大小(0 到 100 = 最大值的百分比,101+ = 实际字节数)。TcpBind_INADDR_ANY
: 绑定 IP_ADDR_ANY,以便可以从任何地方进行连接(用于自动生成的连接)。TimeBetweenEpochs
: 各个时期之间的时间间隔(用于复制同步)。TimeBetweenEpochsTimeout
: 时期之间的超时时间。超时会导致节点关闭。TimeBetweenGlobalCheckpoints
: 将事务组提交到磁盘之间的时间间隔。TimeBetweenGlobalCheckpointsTimeout
: 事务组提交到磁盘的最小超时时间。TimeBetweenInactiveTransactionAbortCheck
: 检查非活动事务之间的时间间隔。TimeBetweenLocalCheckpoints
: 对数据库进行快照的时间间隔(以字节的基数-2 对数表示)。TimeBetweenWatchDogCheck
: 数据节点内部执行检查之间的时间间隔。TimeBetweenWatchDogCheckInitial
: 数据节点内部执行检查之间的时间间隔(在分配内存时的早期阶段)。TotalSendBufferMemory
: 用于所有传输器发送缓冲区的总内存。TransactionBufferMemory
: 为每个数据节点分配的用于键和属性数据的动态缓冲空间(以字节为单位)。TransactionDeadlockDetectionTimeout
: 事务在数据节点内执行的时间。这是事务协调器等待每个参与事务的数据节点执行请求的时间。如果数据节点花费的时间超过这个时间,事务将被中止。TransactionInactiveTimeout
: 应用程序在执行事务的另一部分之前等待的毫秒数。这是事务协调器等待应用程序执行或发送事务的另一部分(查询、语句)的时间。如果应用程序花费太长时间,则事务将被���止。超时 = 0 表示应用程序永远不会超时。TransactionMemory
: 每个数据节点上为事务分配的内存。TwoPassInitialNodeRestartCopy
: 在初始节点重新启动期间进行 2 次数据复制,从而实现有序索引的多线程构建。UndoDataBuffer
: 未使用;没有效果。UndoIndexBuffer
: 未使用;没有效果。UseShm
: 在此数据节点和在同一主机上运行的 API 节点之间使用共享内存连接。WatchDogImmediateKill
: 当为真时,线程在发生看门狗问题时立即被终止;用于测试和调试。
以下参数特定于ndbmtd"):
AutomaticThreadConfig
: 使用自动线程配置;覆盖任何 ThreadConfig 和 MaxNoOfExecutionThreads 的设置,并禁用 ClassicFragmentation。ClassicFragmentation
: 当为真时,使用传统表碎片化;设置为假以在 LDM 之间灵活分配碎片。由 AutomaticThreadConfig 禁用。EnableMultithreadedBackup
: 启用多线程备份。MaxNoOfExecutionThreads
: 仅对 ndbmtd,指定最大执行线程数。MaxSendDelay
: ndbmtd 发送的最大延迟微秒数。NoOfFragmentLogParts
: 属于此数据节点的重做日志文件组数。NumCPUs
: 指定与 AutomaticThreadConfig 一起使用的 CPU 数量。PartitionsPerNode
: 确定在每个数据节点上创建的表分区数;如果启用了 ClassicFragmentation,则不使用。ThreadConfig
: 用于配置多线程数据节点(ndbmtd)。默认为空字符串;请参阅文档以获取语法和其他信息。
原文:
dev.mysql.com/doc/refman/8.0/en/mysql-cluster-params-mgmd.html
25.4.2.2 NDB 集群管理节点配置参数
本节中的列表提供了有关在config.ini
文件中配置 NDB 集群管理节点的[ndb_mgmd]
或[mgm]
部分中使用的参数的信息。有关每个参数的详细描述和其他附加信息,请参阅第 25.4.3.5 节,“定义 NDB 集群管理服务器”。
ArbitrationDelay
: 在被要求进行仲裁时,仲裁者在投票之前等待的时间(毫秒)。ArbitrationRank
: 如果为 0,则管理节点不是仲裁者。内核按顺序选择仲裁者为 1、2。DataDir
: 此节点的数据目录。ExecuteOnComputer
: 引用先前定义的计算机的字符串。ExtraSendBufferMemory
: 用于发送缓冲区的内存,除了由 TotalSendBufferMemory 或 SendBufferMemory 分配的内存。默认值(0)允许最多使用 16MB。HeartbeatIntervalMgmdMgmd
: 管理节点之间心跳之间的时间;在 3 次错过心跳后,认为管理节点之间的连接已丢失。HeartbeatThreadPriority
: 设置管理节点的心跳线程策略和优先级;请参阅手册以获取允许的数值。HostName
: 此管理节点的主机名或 IP 地址。Id
: 标识管理节点的编号。现已弃用;请使用 NodeId 代替。LocationDomainId
: 将此管理节点分配给特定的可用域或区域。0(默认)表示未设置。LogDestination
: 日志消息发送到的位置:控制台、系统日志或指定的日志文件。NodeId
: 在集群中唯一标识管理节点的编号。PortNumber
: 发送命令和从管理服务器获取配置的端口号。PortNumberStats
: 用于从管理服务器获取统计信息的端口号。TotalSendBufferMemory
: 用于所有传输器发送缓冲区的总内存。wan
: 将 WAN TCP 设置用作默认设置。
注意
在管理节点的配置中进行更改后,需要对集群执行滚动重启,以使新配置生效。查看 Section 25.4.3.5, “定义 NDB 集群管理服务器”,获取更多信息。
要向正在运行的 NDB 集群添加新的管理服务器,还需要在修改任何现有的config.ini
文件后对所有集群节点执行滚动重启。有关在使用多个管理节点时出现的问题的更多信息,请参阅 Section 25.2.7.10, “与多个 NDB 集群节点相关的限制”。
原文:
dev.mysql.com/doc/refman/8.0/en/mysql-cluster-params-api.html
25.4.2.3 NDB 集群 SQL 节点和 API 节点配置参数
本节中的列表提供了有关在 config.ini
文件中配置 NDB 集群 SQL 节点和 API 节点的 [mysqld]
和 [api]
部分中使用的参数的信息。有关每个参数的详细描述和其他附加信息,请参见 第 25.4.3.7 节,“在 NDB 集群中定义 SQL 和其他 API 节点”。
ApiVerbose
: 启用 NDB API 调试;用于 NDB 开发。仲裁延迟
: 在被要求仲裁时,仲裁者在投票前等待的毫秒数。仲裁级别
: 如果为 0,则 API 节点不是仲裁者。内核按顺序选择仲裁者 1、2。自动重新连接
: 指定当 API 节点与集群断开连接时是否应完全重新连接。批处理字节大小
: 字节的默认批处理大小。批处理大小
: 记录数量的默认批处理大小。连接退避最大时间
: 指定此 API 节点允许在尝试连接到任何给定数据节点之间的最长时间(~100ms 分辨率)。不包括连接尝试正在进行时经过的时间,最坏情况下可能需要几秒钟。通过将其设置为 0 来禁用。如果当前没有数据节点连接到此 API 节点,则将使用 StartConnectBackoffMaxTime。连接映射
: 指定要连接的数据节点。默认哈希映射大小
: 设置用于表哈希映射的大小(桶数)。支持三个值:0、240 和 3840。默认操作重做问题操作
: 当 RedoOverCommitCounter 超过时如何处理操作。在计算机上执行
: 引用先前定义的计算机的字符串。额外发送缓冲区内存
: 用于发送缓冲区的内存,除了 TotalSendBufferMemory 或 SendBufferMemory 分配的内存之外。默认值(0)允许最多 16MB。HeartbeatThreadPriority
: 设置 API 节点的心跳线程策略和优先级;请参阅手册以获取允许的值。HostName
: 此 SQL 或 API 节点的主机名或 IP 地址。Id
: 标识 MySQL 服务器或 API 节点(Id)的编号。现已弃用;请改用 NodeId。LocationDomainId
: 将此 API 节点分配给特定的可用域或区域。0(默认)表示未设置。MaxScanBatchSize
: 一次扫描的最大集合批量大小。NodeId
: 在集群中唯一标识 SQL 节点或 API 节点的编号。StartConnectBackoffMaxTime
: 与 ConnectBackoffMaxTime 相同,只是如果没有数据节点连接到此 API 节点,则使用此参数。TotalSendBufferMemory
: 用于所有传输器发送缓冲区的总内存。wan
: 使用 WAN TCP 设置作为默认设置。
关于 NDB Cluster 的 MySQL 服务器选项的讨论,请参见 Section 25.4.3.9.1, “MySQL Server Options for NDB Cluster”。关于与 NDB Cluster 相关的 MySQL 服务器系统变量的信息,请参见 Section 25.4.3.9.2, “NDB Cluster System Variables”。
注意
要将新的 SQL 或 API 节点添加到运行中的 NDB Cluster 配置中,必须在向 config.ini
文件(或文件,如果您使用多个管理服务器)添加新的 [mysqld]
或 [api]
部分后,对所有集群节点执行滚动重启。在新的 SQL 或 API 节点可以连接到集群之前,必须执行此操作。
如果新的 SQL 或 API 节点可以利用集群配置中以前未使用的 API 插槽连接到集群,则无需执行任何集群重启。
原文:
dev.mysql.com/doc/refman/8.0/en/mysql-cluster-params-other.html
25.4.2.4 其他 NDB Cluster 配置参��
本节中的列表提供了有关在config.ini
文件中配置 NDB Cluster 的[computer]
、[tcp]
和[shm]
部分中使用的参数的信息。有关各个参数的详细描述和其他信息,请参见第 25.4.3.10 节,“NDB Cluster TCP/IP 连接”或第 25.4.3.12 节,“NDB Cluster 共享内存连接”。
以下参数适用于config.ini
文件中的[computer]
部分:
主机名
: 此计算机的主机名或 IP 地址。ID
: 此计算机的唯一标识符。
以下参数适用于config.ini
文件中的[tcp]
部分:
允许未解析的主机名
: 当为 false(默认)时,管理节点无法解析主机名会导致致命错误;当为 true 时,未解析的主机名仅作为警告报告。校验和
: 如果启用了校验和,节点之间的所有信号都会被检查错误。组
: 用于组接近性;较小的值被解释为更接近。主机名 1
: 两台计算机通过 TCP 连接加入的第一台计算机的名称或 IP 地址。主机名 2
: 两台通过 TCP 连接加入的计算机中的第二台的名称或 IP 地址。节点 ID1
: 连接一侧的节点(数据节点、API 节点或管理节点)的 ID。节点 ID2
: 连接一侧的节点(数据节点、API 节点或管理节点)的 ID。节点服务器 ID
: 设置 TCP 连接的服务器端。过载限制
: 当发送缓冲区中有超过这么多未发送字节时,连接被视为过载。首选 IP 版本
: 指示 DNS 解析器对 IP 版本 4 或 6 的偏好。预发送校验和
: 如果启用了此参数和校验和,则执行预发送校验和检查,并检查节点之间的所有 TCP 信号是否有错误。代理
: …ReceiveBufferMemory
: 此节点接收的信号的缓冲区字节数。SendBufferMemory
: 从此节点发送的信号的 TCP 缓冲区字节数。SendSignalId
: 在每个信号中发送 ID。在跟踪文件中使用。在调试版本中默认为 true。TcpSpinTime
: 在接收时进入睡眠之前旋转的时间。TCP_MAXSEG_SIZE
: 用于 TCP_MAXSEG 的值。TCP_RCV_BUF_SIZE
: 用于 SO_RCVBUF 的值。TCP_SND_BUF_SIZE
: 用于 SO_SNDBUF 的值。TcpBind_INADDR_ANY
: 为连接的服务器部分绑定 InAddrAny 而不是主机名。
以下参数适用于config.ini
文件的[shm]
部分:
Checksum
: 如果启用了校验和,则检查节点之间的所有信号是否存在错误。Group
: 用于组接近性;较小的值被解释为更接近。HostName1
: 由 SHM 连接连接的两台计算机中的第一台的名称或 IP 地址。HostName2
: 由 SHM 连接连接的两台计算机中的第二台的名称或 IP 地址。NodeId1
: 连接一侧的节点(数据节点、API 节点或管理节点)的 ID。NodeId2
: 连接一侧的节点(数据节点、API 节点或管理节点)的 ID。NodeIdServer
: 设置 SHM 连接的服务器端。OverloadLimit
: 当发送缓冲区中有超过此数量的未发送字节时,连接被视为过载。PreSendChecksum
: 如果启用了此参数和 Checksum,则执行预发送校验和检查,并检查节点之间的所有 SHM 信号是否存在错误。SendBufferMemory
: 从此节点发送的信号在共享内存缓冲区中的字节数。SendSignalId
: 在每个信号中发送 ID。在跟踪文件中使用。ShmKey
: 共享内存键;当设置为 1 时,由 NDB 计算。ShmSpinTime
: 在接收时,睡眠前旋转的微秒数。ShmSize
: 共享内存段的大小。Signum
: 用于信号传递的信号编号。
原文:
dev.mysql.com/doc/refman/8.0/en/mysql-cluster-option-tables.html
25.4.2.5 NDB Cluster mysqld 选项和变量参考
以下列表包括在 NDB Cluster 中作为 SQL 节点运行时mysqld
中适用的命令行选项、系统变量和状态变量。有关所有与mysqld相关的命令行选项、系统变量和状态变量的参考,请参阅第 7.1.4 节,“服务器选项、系统变量和状态变量参考”。
Com_show_ndb_status
: SHOW NDB STATUS 语句的计数。Handler_discover
: 表被发现的次数。ndb-applier-allow-skip-epoch
: 允许复制应用程序跳过时代。ndb-batch-size
: 用于 NDB 事务批处理的大小(以字节为单位)。ndb-blob-read-batch-bytes
: 指定大型 BLOB 读取应该分批处理的字节数。0 = 无限制。ndb-blob-write-batch-bytes
: 指定大型 BLOB 写入应该分批处理的字节数。0 = 无限制。ndb-cluster-connection-pool
: MySQL 使用的集群连接数。ndb-cluster-connection-pool-nodeids
: 用于 MySQL 连接到集群的节点 ID 的逗号分隔列表;列表中的节点数必须与–ndb-cluster-connection-pool 设置的值匹配。ndb-connectstring
: 分发此集群的配置信息的 NDB 管理服务器的地址。ndb-default-column-format
: 在创建或添加表列时,默认使用此值(FIXED 或 DYNAMIC)作为 COLUMN_FORMAT 和 ROW_FORMAT 选项。ndb-deferred-constraints
: 指定应该推迟对唯一索引的约束检查(支持的情况下)直到提交时间。通常不需要或使用;仅用于测试目的��ndb-distribution
: 新表在 NDBCLUSTER 中的默认分布(KEYHASH 或 LINHASH,默认为 KEYHASH)。ndb-log-apply-status
: 导致作为副本的 MySQL 服务器在其自己的二进制日志中记录从其直接来源接收到的 mysql.ndb_apply_status 更新,使用自己的服务器 ID。仅在使用–ndbcluster 选项启动服务器时有效。ndb-log-empty-epochs
: 启用时,即使启用了–log-slave-updates,也会导致未发生更改的时代被写入 ndb_apply_status 和 ndb_binlog_index 表。ndb-log-empty-update
: 启用时,即使启用了–log-slave-updates,也会导致产生没有更改的更新被写入 ndb_apply_status 和 ndb_binlog_index 表。ndb-log-exclusive-reads
: 使用独占锁记录主键读取;允许基于读取冲突进行冲突解决。ndb-log-fail-terminate
: 如果无法完全记录所有找到的行事件,则终止 mysqld 进程。ndb-log-orig
: 在 mysql.ndb_binlog_index 表中记录原始服务器 ID 和时代。ndb-log-transaction-dependency
: 使二进制日志线程为每个写入二进制日志的事务计算事务依赖关系。ndb-log-transaction-id
: 将 NDB 事务 ID 写入二进制日志。需要–log-bin-v1-events=OFF。ndb-log-update-minimal
: 以最小格式记录更新。ndb-log-updated-only
: 仅记录更新(ON)或完整行(OFF)。ndb-log-update-as-write
: 在源上切换更新的日志记录方式,可以是更新(OFF)或写入(ON)。ndb-mgmd-host
: 设置连接到管理服务器的主机(和端口,如果需要)。ndb-nodeid
: 此 MySQL 服务器的 NDB 集群节点 ID。ndb-optimized-node-selection
: 启用用于事务节点选择的优化。默认启用;使用–skip-ndb-optimized-node-selection 来禁用。ndb-transid-mysql-connection-map
: 启用或禁用 ndb_transid_mysql_connection_map 插件;即启用或禁用具有该名称的 INFORMATION_SCHEMA 表。ndb-wait-connected
: MySQL 服务器在接受 MySQL 客户端连接之前等待连接到集群管理和数据节点的时间(以秒为单位)。ndb-wait-setup
: MySQL 服务器等待 NDB 引擎设置完成的时间(以秒为单位)。ndb-allow-copying-alter-table
: 将其设置为 OFF,以防止 ALTER TABLE 在 NDB 表上使用复制操作。Ndb_api_adaptive_send_deferred_count
: 由此 MySQL 服务器(SQL 节点)未实际发送的自适应发送调用次数。Ndb_api_adaptive_send_deferred_count_session
: 此客户端会话中未实际发送的自适应发送调用次数。Ndb_api_adaptive_send_deferred_count_replica
: 此副本未实际发送的自适应发送调用次数。Ndb_api_adaptive_send_deferred_count_slave
: 此副本未实际发送的自适应发送调用次数。Ndb_api_adaptive_send_forced_count
: 由此 MySQL 服务器(SQL 节点)发送的带有强制发送设置的自适应发送次数。Ndb_api_adaptive_send_forced_count_session
: 此客户端会话中带有强制发送设置的自适应发送次数。Ndb_api_adaptive_send_forced_count_replica
: 此副本发送的带有强制发送设置的自适应发送次数。Ndb_api_adaptive_send_forced_count_slave
: 此副本发送的带有强制发送设置的自适应发送次数。Ndb_api_adaptive_send_unforced_count
: 由此 MySQL 服务器(SQL 节点)发送的无强制发送的自适应发送次数。Ndb_api_adaptive_send_unforced_count_session
: 此客户端会话中未带有强制发送的自适应发送次数。Ndb_api_adaptive_send_unforced_count_replica
: 该副本发送的无强制发送的自适应发送数量。Ndb_api_adaptive_send_unforced_count_slave
: 该副本发送的无强制发送的自适应发送数量。Ndb_api_bytes_received_count
: 从数据节点接收的数据量(以字节为单位)由此 MySQL 服务器(SQL 节点)。Ndb_api_bytes_received_count_session
: 从数据节点接收的数据量(以字节为单位)在此客户端会话中。Ndb_api_bytes_received_count_replica
: 从数据节点接收的数据量(以字节为单位)由此副本。Ndb_api_bytes_received_count_slave
: 从数据节点接收��数据量(以字节为单位)由此副本。Ndb_api_bytes_sent_count
: 发送到数据节点的数据量(以字节为单位)由此 MySQL 服务器(SQL 节点)。Ndb_api_bytes_sent_count_session
: 发送到数据节点的数据量(以字节为单位)在此客户端会话中。Ndb_api_bytes_sent_count_replica
: 该副本发送到数据节点的数据量(以字节为单位)。Ndb_api_bytes_sent_count_slave
: 该副本发送到数据节点的数据量(以字节为单位)。Ndb_api_event_bytes_count
: MySQL 服务器(SQL 节点)接收的事件字节数。Ndb_api_event_bytes_count_injector
: NDB 二进制日志注入器线程接收的事件数据字节数。Ndb_api_event_data_count
: MySQL 服务器(SQL 节点)接收的行更改事件数量。Ndb_api_event_data_count_injector
: NDB 二进制日志注入器线程接收的行更改事件数量。Ndb_api_event_nondata_count
: MySQL 服务器(SQL 节点)接收的除行更改事件之外的事件数量。Ndb_api_event_nondata_count_injector
: NDB 二进制日志注入线程接收的事件数量,除了行更改事件之外。Ndb_api_pk_op_count
: 由此 MySQL 服务器(SQL 节点)基于或使用主键的操作数量。Ndb_api_pk_op_count_session
: 在此客户端会话中基于或使用主键的操作数量。Ndb_api_pk_op_count_replica
: 由此副本基于或使用主键的操作数量。Ndb_api_pk_op_count_slave
: 由此副本基于或使用主键的操作数量。Ndb_api_pruned_scan_count
: 由此 MySQL 服务器(SQL 节点)修剪为一个分区的扫描次数。Ndb_api_pruned_scan_count_session
: 在此客户端会话中修剪为一个分区的扫描次数。Ndb_api_pruned_scan_count_replica
: 由此副本修剪为一个分区的扫描次数。Ndb_api_pruned_scan_count_slave
: 由此副本修剪为一个分区的扫描次数。Ndb_api_range_scan_count
: 由此 MySQL 服务器(SQL 节点)启动的范围扫描次数。Ndb_api_range_scan_count_session
: 在此客户端会话中启动的范围扫描次数。Ndb_api_range_scan_count_replica
: 由此副本启动的范围扫描次数。Ndb_api_range_scan_count_slave
: 由此副本启动的范围扫描次数。Ndb_api_read_row_count
: 由此 MySQL 服务器(SQL 节点)读取的总行数。Ndb_api_read_row_count_session
: 在此客户端会话中读取的总行数。Ndb_api_read_row_count_replica
: 由此副本读取的总行数。Ndb_api_read_row_count_slave
: 该副本已读取的总行数。Ndb_api_scan_batch_count
: 由此 MySQL 服务器(SQL 节点)接收的行批次数量。Ndb_api_scan_batch_count_session
: 在此客户端会话中接收的行批次数量。Ndb_api_scan_batch_count_replica
: 该副本接收的行批次数量。Ndb_api_scan_batch_count_slave
: 该副本接收的行批次数量。Ndb_api_table_scan_count
: 由此 MySQL 服务器(SQL 节点)启动的表扫描次数,包括内部表的扫描。Ndb_api_table_scan_count_session
: 在此客户端会话中启动的表扫描次数,包括内部表的扫描。Ndb_api_table_scan_count_replica
: 该副本启动的表扫描次数,包括内部表的扫描。Ndb_api_table_scan_count_slave
: 该副本启动的表扫描次数,包括内部表的扫描。Ndb_api_trans_abort_count
: 由此 MySQL 服务器(SQL 节点)中止的事务数量。Ndb_api_trans_abort_count_session
: 在此客户端会话中中止的事务数量。Ndb_api_trans_abort_count_replica
: 该副本中被中止的事务数量。Ndb_api_trans_abort_count_slave
: 该副本中被中止的事务数量。
MySQL8 中文参考(八十七)(2)https://developer.aliyun.com/article/1565937