文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  ndb_config — 提取 NDB Cluster 配置信息

25.5.7 ndb_config — 提取 NDB Cluster 配置信息

此工具从以下几种来源之一提取数据节点、SQL 节点和 API 节点的当前配置信息:NDB Cluster 管理节点,或其 config.inimy.cnf 文件。默认情况下,管理节点是配置数据的来源;要覆盖默认值,请使用 --config-file--mycnf 选项执行 ndb_config。还可以通过使用 --config_from_node=node_id 指定其节点 ID 来使用数据节点作为来源。

ndb_config 还可以提供所有配置参数的离线转储,这些参数及其默认值、最大值、最小值和其他信息可以一起使用。转储可以以文本或 XML 格式生成;有关更多信息,请参阅本节后面有关 --configinfo--xml 选项的讨论。

您可以使用 --nodes--system--connections 选项之一,按节(DBSYSTEMCONNECTIONS)过滤结果。

所有可与 ndb_config 一起使用的选项都列在下面的表格中。表格后面提供了其他描述。

  • --character-sets-dir

    命令行格式 --character-sets-dir=path

    包含字符集的目录。

  • cluster-config-suffix

    命令行格式 --cluster-config-suffix=name
    类型 字符串
    默认值 [无]

    在读取 my.cnf 中的集群配置节时覆盖默认组后缀;用于测试。

  • --configinfo

    --configinfo 选项会导致 ndb_config 转储 NDB Cluster 分发版(其中 ndb_config 是其中一部分)支持的每个 NDB Cluster 配置参数的列表,包括以下信息

    • 简要描述每个参数的用途、效果和用法

    • config.ini 文件中可能使用参数的节

    • 参数的数据类型或度量单位

    • 在适用的情况下,参数的默认值、最小值和最大值

    • NDB Cluster 版本和构建信息

    默认情况下,此输出为文本格式。部分输出如下所示

    $> ndb_config --configinfo
    
    ****** SYSTEM ******
    
    Name (String)
    Name of system (NDB Cluster)
    MANDATORY
    
    PrimaryMGMNode (Non-negative Integer)
    Node id of Primary ndb_mgmd(MGM) node
    Default: 0 (Min: 0, Max: 4294967039)
    
    ConfigGenerationNumber (Non-negative Integer)
    Configuration generation number
    Default: 0 (Min: 0, Max: 4294967039)
    
    ****** DB ******
    
    MaxNoOfSubscriptions (Non-negative Integer)
    Max no of subscriptions (default 0 == MaxNoOfTables)
    Default: 0 (Min: 0, Max: 4294967039)
    
    MaxNoOfSubscribers (Non-negative Integer)
    Max no of subscribers (default 0 == 2 * MaxNoOfTables)
    Default: 0 (Min: 0, Max: 4294967039)
    
    …

    将此选项与 --xml 选项一起使用以获得 XML 格式的输出。

  • --config-binary-file=path-to-file

    命令行格式 --config-binary-file=path/to/file
    类型 文件名
    默认值

    提供管理服务器的缓存二进制配置文件 (ndb_nodeID_config.bin.seqno) 的路径。这可以是相对路径或绝对路径。如果管理服务器和使用的 ndb_config 二进制文件位于不同的主机上,则必须使用绝对路径。

    此示例演示了将 --config-binary-file 与其他 ndb_config 选项组合以获得有用的输出

    $> ndb_config --config-binary-file=../mysql-cluster/ndb_50_config.bin.1 --diff-default --type=ndbd
    config of [DB] node id 5 that is different from default 
    CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE 
    NodeId,5,(mandatory) 
    BackupDataDir,/local/data/9.0,(null) 
    DataDir,/local/data/9.0,. 
    DataMemory,2G,98M 
    FileSystemPath,/local/data/9.0,(null) 
    HostName,127.0.0.1,localhost 
    Nodegroup,0,(null) 
    ThreadConfig,,(null) 
    
    config of [DB] node id 6 that is different from default 
    CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE 
    NodeId,6,(mandatory) 
    BackupDataDir,/local/data/9.0,(null) 
    DataDir,/local/data/9.0. 
    DataMemory,2G,98M 
    FileSystemPath,/local/data/9.0,(null) 
    HostName,127.0.0.1,localhost 
    Nodegroup,0,(null) 
    ThreadConfig,,(null)
    
    $> ndb_config --config-binary-file=../mysql-cluster/ndb_50_config.bin.1 --diff-default --system
    config of [SYSTEM] system 
    CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE 
    Name,MC_20220906060042,(mandatory) 
    ConfigGenerationNumber,1,0 
    PrimaryMGMNode,50,0

    config.ini 文件的相关部分如下所示

    [ndbd default]
    DataMemory= 2G
    NoOfReplicas= 2
    
    [ndb_mgmd]
    NodeId= 50
    HostName= 127.0.0.1
    
    [ndbd]
    NodeId= 5
    HostName= 127.0.0.1
    DataDir= /local/data/9.0
    
    [ndbd]
    NodeId= 6
    HostName= 127.0.0.1
    DataDir= /local/data/9.0

    通过将输出与配置文件进行比较,您可以看到配置文件中的所有设置都已由管理服务器写入二进制缓存,因此已应用于集群。

  • --config-file=path-to-file

    命令行格式 --config-file=file_name
    类型 文件名
    默认值

    提供集群配置文件 (config.ini) 的路径。这可以是相对路径或绝对路径。如果管理服务器和使用的 ndb_config 二进制文件位于不同的主机上,则必须使用绝对路径。

  • --config_from_node=#

    命令行格式 --config-from-node=#
    类型 数字
    默认值
    最小值 1
    最大值 48

    从具有此 ID 的数据节点获取集群的配置数据。

    如果具有此 ID 的节点不是数据节点,则 ndb_config 会失败并出现错误。(要改为从管理节点获取配置数据,只需省略此选项。)

  • --connect-retries

    命令行格式 --connect-retries=#
    类型 整数
    默认值 12
    最小值 0
    最大值 12

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

  • --connect-retry-delay

    命令行格式 --connect-retry-delay=#
    类型 整数
    默认值 5
    最小值 0
    最大值 5

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

  • --connect-string

    命令行格式 --connect-string=connection_string
    类型 字符串
    默认值 [无]

    --ndb-connectstring 相同。

  • --connections

    命令行格式 --connections

    告诉 ndb_config 只打印 CONNECTIONS 信息,即有关在集群配置文件的 [tcp][tcp default][shm][shm default] 节中找到的参数的信息(有关更多信息,请参见 第 25.4.3.10 节,“NDB Cluster TCP/IP 连接”第 25.4.3.12 节,“NDB Cluster 共享内存连接”)。

    此选项与 --nodes--system 相互排斥;这 3 个选项中只能使用一个。

  • --core-file

    命令行格式 --core-file

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

  • --defaults-extra-file

    命令行格式 --defaults-extra-file=path
    类型 字符串
    默认值 [无]

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

  • --defaults-file

    命令行格式 --defaults-file=path
    类型 字符串
    默认值 [无]

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

  • --defaults-group-suffix

    命令行格式 --defaults-group-suffix=string
    类型 字符串
    默认值 [无]

    还读取具有 concat(group, suffix) 的组。

  • --diff-default

    命令行格式 --diff-default

    仅打印具有非默认值的配置参数。

  • --fields=delimiter, -f delimiter

    命令行格式 --fields=string
    类型 字符串
    默认值

    指定用于分隔结果中字段的 delimiter 字符串。默认值为 ,(逗号字符)。

    注意

    如果 delimiter 包含空格或转义字符(例如 \n 代表换行符),则必须加引号。

  • --help

    命令行格式 --help

    显示帮助文本并退出。

  • --host=hostname

    命令行格式 --host=name
    类型 字符串
    默认值

    指定要获取配置信息的节点的主机名。

    注意

    虽然主机名 localhost 通常解析为 IP 地址 127.0.0.1,但这并不一定适用于所有操作系统平台和配置。这意味着,当 localhost 用于 config.ini 时,如果 ndb_config --host=localhostlocalhost 解析为不同地址(例如,在某些版本的 SUSE Linux 上,此地址为 127.0.0.2)的不同主机上运行,则可能会失败。通常,为了获得最佳效果,您应该对与主机相关的所有 NDB Cluster 配置值使用数字 IP 地址,或验证所有 NDB Cluster 主机以相同的方式处理 localhost

  • --login-path

    命令行格式 --login-path=path
    类型 字符串
    默认值 [无]

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

  • --mycnf

    命令行格式 --mycnf

    my.cnf 文件读取配置数据。

  • --ndb-connectstring=connection_string, -c connection_string

    命令行格式 --ndb-connectstring=connection_string
    类型 字符串
    默认值 [无]

    指定用于连接到管理服务器的连接字符串。连接字符串的格式与第 25.4.3.3 节,“NDB 集群连接字符串”中描述的相同,默认值为 localhost:1186

  • --ndb-mgm-tls

    命令行格式 --ndb-mgm-tls=level
    类型 枚举
    默认值 relaxed
    有效值

    relaxed

    strict

    设置连接到管理服务器所需的 TLS 支持级别;relaxedstrict 之一。 relaxed(默认)表示尝试建立 TLS 连接,但不需要成功;strict 表示连接需要 TLS。

  • --ndb-mgmd-host

    命令行格式 --ndb-mgmd-host=connection_string
    类型 字符串
    默认值 [无]

    --ndb-connectstring 相同。

  • --ndb-nodeid

    命令行格式 --ndb-nodeid=#
    类型 整数
    默认值 [无]

    设置此节点的节点 ID,覆盖由--ndb-connectstring设置的任何 ID。

  • --ndb-optimized-node-selection

    命令行格式 --ndb-optimized-node-selection

    启用针对事务节点选择的优化。默认情况下启用;使用 --skip-ndb-optimized-node-selection 禁用。

  • --ndb-tls-search-path

    命令行格式 --ndb-tls-search-path=list
    类型 路径名称
    默认值(Unix) $HOME/ndb-tls
    默认值(Windows) $HOMEDIR/ndb-tls

    指定要搜索 CA 文件的目录列表。在 Unix 平台上,目录名称以冒号 (:) 分隔;在 Windows 系统上,分号 (;) 用作分隔符。目录引用可以是相对的或绝对的;它可以包含一个或多个环境变量,每个变量都以美元符号 ($) 为前缀,并在使用前扩展。

    搜索从最左边的命名目录开始,从左到右进行,直到找到一个文件。空字符串表示空搜索路径,导致所有搜索失败。仅包含一个点 (.) 的字符串表示搜索路径仅限于当前工作目录。

    如果没有提供搜索路径,则使用编译后的默认值。此值取决于使用的平台:在 Windows 上,这是 \ndb-tls;在其他平台(包括 Linux)上,它是 $HOME/ndb-tls。这可以通过使用-DWITH_NDB_TLS_SEARCH_PATH编译 NDB 集群来覆盖。

  • --no-defaults

    命令行格式 --no-defaults

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

  • --no-login-paths

    命令行格式 --no-login-paths

    跳过从登录路径文件中读取选项。

  • --nodeid=node_id

    命令行格式 --ndb-nodeid=#
    类型 整数
    默认值 [无]

    指定要获取配置信息的节点的节点 ID。

  • --nodes

    命令行格式 --nodes

    告诉ndb_config 仅打印与集群配置文件 (第 25.4.3.6 节,“定义 NDB 集群数据节点”) 的 [ndbd][ndbd default] 部分中定义的参数相关的 信息。

    此选项与--connections--system 互斥;这 3 个选项中只能使用一个。

  • --print-defaults

    命令行格式 --print-defaults

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

  • --query=query-options, -q query-options

    命令行格式 --query=string
    类型 字符串
    默认值

    这是一个以逗号分隔的查询选项列表,即一个或多个要返回的节点属性列表。这些包括 nodeid(节点 ID)、type(节点类型,即 ndbdmysqldndb_mgmd)以及任何要获取其值的配置参数。

    例如,--query=nodeid,type,datamemory,datadir 返回每个节点的节点 ID、节点类型、DataMemoryDataDir

    注意

    如果给定参数不适用于特定类型的节点,则返回相应的空字符串作为对应值。有关更多信息,请参见本节后面的示例。

  • --query-all, -a

    命令行格式 --query-all
    类型 字符串
    默认值

    返回所有查询选项(节点属性)的逗号分隔列表;请注意,此列表是一个字符串。

  • --rows=separator, -r separator

    命令行格式 --rows=string
    类型 字符串
    默认值

    指定用于分隔结果中行的separator 字符串。默认值为空格字符。

    注意

    如果separator 包含空格或转义符(例如 \n 用于换行符),则必须用引号括起来。

  • --system

    命令行格式 --system

    告诉ndb_config 仅打印 SYSTEM 信息。这包括运行时无法更改的系统变量;因此,没有相应的集群配置文件部分用于它们。它们可以在ndb_config --configinfo 的输出中看到(以 ****** SYSTEM ****** 为前缀)。

    此选项与--nodes--connections 互斥;这 3 个选项中只能使用一个。

  • --type=node_type

    命令行格式 --type=name
    类型 枚举
    默认值 [无]
    有效值

    ndbd

    mysqld

    ndb_mgmd

    筛选结果,以便仅返回适用于指定node_typendbdmysqldndb_mgmd)节点的配置值。

  • --usage, --help, 或 -?

    命令行格式 --help

    导致ndb_config 打印可用选项列表,然后退出。

  • --version, -V

    命令行格式 --version

    导致ndb_config 打印版本信息字符串,然后退出。

  • --configinfo --xml

    命令行格式 --configinfo --xml

    导致ndb_config --configinfo 通过添加此选项来提供 XML 输出。此示例中显示了此类输出的一部分

    $> ndb_config --configinfo --xml
    
    <configvariables protocolversion="1" ndbversionstring="5.7.44-ndb-7.5.35"
                        ndbversion="460032" ndbversionmajor="7" ndbversionminor="5"
                        ndbversionbuild="0">
      <section name="SYSTEM">
        <param name="Name" comment="Name of system (NDB Cluster)" type="string"
                  mandatory="true"/>
        <param name="PrimaryMGMNode" comment="Node id of Primary ndb_mgmd(MGM) node"
                  type="unsigned" default="0" min="0" max="4294967039"/>
        <param name="ConfigGenerationNumber" comment="Configuration generation number"
                  type="unsigned" default="0" min="0" max="4294967039"/>
      </section>
      <section name="MYSQLD" primarykeys="NodeId">
        <param name="wan" comment="Use WAN TCP setting as default" type="bool"
                  default="false"/>
        <param name="HostName" comment="Name of computer for this node"
                  type="string" default=""/>
        <param name="Id" comment="NodeId" type="unsigned" mandatory="true"
                  min="1" max="255" deprecated="true"/>
        <param name="NodeId" comment="Number identifying application node (mysqld(API))"
                  type="unsigned" mandatory="true" min="1" max="255"/>
        <param name="ExecuteOnComputer" comment="HostName" type="string"
                  deprecated="true"/>
    
        …
    
      </section>
    
      …
    
    </configvariables>
    注意

    通常,由ndb_config --configinfo --xml 生成的 XML 输出是使用每元素一行进行格式化的;我们已在之前的示例和下一个示例中添加了额外的空格,以提高可读性。对于使用此输出的应用程序来说,这应该没有任何影响,因为大多数 XML 处理器会自动忽略不必要的空格,或者可以被指示这样做。

    XML 输出还指示何时更改给定参数需要使用--initial 选项重新启动数据节点。这由相应的<param> 元素中存在 initial="true" 属性表示。此外,还显示了重新启动类型 (systemnode);如果给定参数需要系统重新启动,则由相应的<param> 元素中存在 restart="system" 属性表示。例如,更改为Diskless 参数设置的值需要系统初始重新启动,如这里所示(其中restartinitial 属性突出显示以提高可见性)

    <param name="Diskless" comment="Run wo/ disk" type="bool" default="false"
              restart="system" initial="true"/>

    目前,对于与不需要初始重新启动的参数相对应的<param> 元素,XML 输出中不包含 initial 属性;换句话说,initial="false" 是默认值,如果属性不存在,则应假定值为 false。类似地,默认重新启动类型为 node(即集群的联机或“滚动”重新启动),但仅当重新启动类型为 system(表示必须同时关闭所有集群节点,然后重新启动)时,才会包含restart 属性。

    弃用的参数在 XML 输出中用deprecated 属性表示,如这里所示

    <param name="NoOfDiskPagesToDiskAfterRestartACC" comment="DiskCheckpointSpeed"
           type="unsigned" default="20" min="1" max="4294967039" deprecated="true"/>

    在这种情况下,comment 指的是一个或多个替代了弃用参数的参数。与 initial 类似,仅当参数被弃用时才会显示deprecated 属性(使用deprecated="true"),对于没有被弃用的参数,则完全不会显示。

    必需的参数用mandatory="true" 表示,如这里所示

    <param name="NodeId"
              comment="Number identifying application node (mysqld(API))"
              type="unsigned" mandatory="true" min="1" max="255"/>

    与仅当参数需要初始重新启动或被弃用时才会显示initialdeprecated 属性的方式非常相似,仅当给定参数实际需要时才会包含 mandatory 属性。

    重要

    --xml 选项只能与--configinfo 选项一起使用。在没有--configinfo 的情况下使用--xml 会导致错误。

    与该程序用于获取当前配置数据的选项不同,--configinfo--xml 使用从 NDB Cluster 源获取的信息,这些信息是在编译 ndb_config 时获取的。因此,这两个选项不需要连接到正在运行的 NDB Cluster 或访问 config.inimy.cnf 文件。

将其他 ndb_config 选项(如 --query--type)与 --configinfo(带或不带 --xml 选项)组合在一起不受支持。目前,如果您尝试这样做,通常的结果是除了 --configinfo--xml 之外的所有其他选项都将被忽略。 但是,此行为并非保证,并且随时可能更改。此外,由于 ndb_config 在与 --configinfo 选项一起使用时不会访问 NDB Cluster 或读取任何文件,因此尝试使用 --configinfo 指定其他选项(如 --ndb-connectstring--config-file)毫无意义。

示例

  1. 获取集群中每个节点的节点 ID 和类型

    $> ./ndb_config --query=nodeid,type --fields=':' --rows='\n'
    1:ndbd
    2:ndbd
    3:ndbd
    4:ndbd
    5:ndb_mgmd
    6:mysqld
    7:mysqld
    8:mysqld
    9:mysqld

    在此示例中,我们使用 --fields 选项将每个节点的 ID 和类型用冒号字符 (:) 分隔,并使用 --rows 选项在输出中将每个节点的值放在新的一行上。

  2. 生成一个连接字符串,该字符串可供数据、SQL 和 API 节点用于连接到管理服务器

    $> ./ndb_config --config-file=usr/local/mysql/cluster-data/config.ini \
    --query=hostname,portnumber --fields=: --rows=, --type=ndb_mgmd
    198.51.100.179:1186
  3. ndb_config 调用仅检查数据节点(使用 --type 选项),并显示每个节点的 ID 和主机名以及为其 DataMemoryDataDir 参数设置的值

    $> ./ndb_config --type=ndbd --query=nodeid,host,datamemory,datadir -f ' : ' -r '\n'
    1 : 198.51.100.193 : 83886080 : /usr/local/mysql/cluster-data
    2 : 198.51.100.112 : 83886080 : /usr/local/mysql/cluster-data
    3 : 198.51.100.176 : 83886080 : /usr/local/mysql/cluster-data
    4 : 198.51.100.119 : 83886080 : /usr/local/mysql/cluster-data

    在此示例中,我们使用短选项 -f-r 分别设置字段分隔符和行分隔符,以及短选项 -q 传递要获取的参数列表。

  4. 要排除除特定主机之外的所有主机的结果,请使用 --host 选项

    $> ./ndb_config --host=198.51.100.176 -f : -r '\n' -q id,type
    3:ndbd
    5:ndb_mgmd

    在此示例中,我们还使用短形式 -q 来确定要查询的属性。

    类似地,您可以使用 --nodeid 选项将结果限制为具有特定 ID 的节点。