Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  ndb_config — Extract NDB Cluster Configuration Information

25.5.7 NDB 集群配置信息提取工具 — ndb_config

这个工具从 NDB 集群管理节点、config.inimy.cnf 文件中提取当前配置信息,包括数据节点、SQL 节点和 API 节点的信息。默认情况下,管理节点是配置数据的来源;要覆盖默认设置,可以使用--config-file--mycnf选项。也可以使用数据节点作为来源,通过指定其节点 ID 使用--config_from_node=node_id选项。

ndb_ config也可以提供离线dump所有配置参数的信息,这些信息包括默认值、最大值、最小值和其他信息。dump 可以在文本或 XML 格式中生产;更多信息,请参阅--configinfo--xml选项的讨论。)

您可以使用以下选项来过滤结果:DBSYSTEMCONNECTIONS,其中包括--nodes--system--connections

以下是可以与ndb_config一起使用的所有选项的表格。额外描述在表格后面。

  • --character-sets-dir

    Command-Line Format --character-sets-dir=path

    包含字符集的目录。

  • cluster-config-suffix

    Command-Line Format --cluster-config-suffix=name
    Type 字符串
    Default Value [none]

    在读取my.cnf中的集群配置部分时,override默认的组suffix;用于测试。

  • --configinfo

    使用--configinfo选项将ndb_config输出NDB集群配置参数的列表,包括以下信息:

    • 每个参数的简要描述、作用和使用方法

    • config.ini文件中的section

    • 参数的数据类型或单位

    • 可应用时,参数的默认值、最小值和最大值

    • NDB集群版本和构建信息

    默认情况下,这个输出是文本格式的一部分。以下是一部分输出:

    $> 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)
    
    …

    使用这个选项 zusammen mit dem --xml 选项来获取XML格式的输出。

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

    Command-Line Format --config-binary-file=path/to/file
    Type 文件名
    Default Value

    显示管理服务器的缓存二进制配置文件路径(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/8.4,(null) 
    DataDir,/local/data/8.4,. 
    DataMemory,2G,98M 
    FileSystemPath,/local/data/8.4,(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/8.4,(null) 
    DataDir,/local/data/8.4. 
    DataMemory,2G,98M 
    FileSystemPath,/local/data/8.4,(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/8.4
    
    [ndbd]
    NodeId= 6
    HostName= 127.0.0.1
    DataDir= /local/data/8.4

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

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

    Command-Line Format --config-file=file_name
    Type 文件名
    Default Value

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

  • --config_from_node=#

    Command-Line Format --config-from-node=#
    Type 数字
    Default Value none
    Minimum Value 1
    Maximum Value 48

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

    如果具有该ID的节点不是数据节点,ndb_config将以错误退出。 (要从管理节点获取配置数据,只需省略该选项。)

  • --connect-retries

    Command-Line Format --connect-retries=#
    Type 整数
    Default Value 12
    Minimum Value 0
    Maximum Value 12

    连接失败前重试的次数。

  • --connect-retry-delay

    Command-Line Format --connect-retry-delay=#
    Type 整数
    Default Value 5
    Minimum Value 0
    Maximum Value 5

    连接管理服务器时等待的秒数。

  • --connect-string

    Command-Line Format --connect-string=connection_string
    Type 字符串
    Default Value [none]

    --ndb-connectstring相同。

  • --connections

    Command-Line Format --connections

    ndb_config 命令设置为仅打印CONNECTIONS信息,即来自集群配置文件的[tcp][tcp default][shm][shm default]部分的参数信息(见第25.4.3.10节,“NDB Cluster TCP/IP Connections”第25.4.3.12节,“NDB Cluster Shared-Memory Connections”,了解更多信息)。

    这个选项与--nodes--system选项是互斥的,只能使用其中一个。

  • --core-file

    Command-Line Format --core-file

    在错误情况下写入核心文件;用于调试。

  • --defaults-extra-file

    Command-Line Format --defaults-extra-file=path
    Type 字符串
    Default Value [none]

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

  • --defaults-file

    Command-Line Format --defaults-file=路径
    Type 字符串
    Default Value [none]

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

  • --defaults-group-suffix

    Command-Line Format --defaults-group-suffix=字符串
    Type 字符串
    Default Value [none]

    也读取concat(组,后缀)中的组。

  • --diff-default

    Command-Line Format --diff-default

    只打印配置参数,具有非默认值。

  • --fields=分隔符, -f 分隔符

    Command-Line Format --fields=字符串
    Type 字符串
    Default Value

    指定结果中字段的分隔符字符串。默认是,(逗号字符)。

    Note

    如果delimiter包含空格或转义字符(例如\n表示换行符),那么它必须被引号。

  • --help

    Command-Line Format --help

    显示帮助文本并退出。

  • --host=hostname

    Command-Line Format --host=name
    Type 字符串
    Default Value

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

    Note

    通常情况下,主机名localhost将解析为IP地址127.0.0.1。然而,这可能在所有操作系统和配置中都不是真的。这意味着,当使用config.ini中的localhost时,ndb_config --host=localhost可能在不同的主机上失败,这些主机上的localhost解析为不同的地址(例如,在某些版本的SUSE Linux中,这是127.0.0.2)。总的来说,对于NDB集群配置中的所有主机相关值,您应该使用数字IP地址,或者验证所有NDB集群主机都处理localhost一样。

  • --login-path

    Command-Line Format --login-path=path
    Type String
    Default Value [none]

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

  • --mycnf

    Command-Line Format --mycnf

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

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

    Command-Line Format --ndb-connectstring=connection_string
    Type 字符串
    Default Value [none]

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

  • --ndb-mgm-tls

    Command-Line Format --ndb-mgm-tls=level
    Type 枚举值
    Default Value relaxed
    Valid Values

    relaxed

    strict

    设置连接到管理服务器时所需的TLS支持级别;可以是relaxedstrictrelaxed(默认)表示尝试建立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-phns

    Command-Line Format --_ndb-tls-search-phns=list
    Type Path name
    Default Value (Unix) $HOME/ndb-tls
    Default Value (Windows) $HOME/ndb-tls

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

    搜索从左侧命名目录开始,自左向右直到找到文件为止。空字符串表示空搜索路径,这将导致所有搜索失败。包含单个点(.)的字符串表示搜索路径限制于当前工作目录。

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

  • --no-defaults

    Command-Line Format --no-defaults

    不从任何选项文件中读取默认选项,除了登录文件。

  • --no-login-paths

    Command-Line Format --no-login-paths

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

  • --nodeid=node_id

    Command-Line Format --ndb-nodeid=#
    Type Integer
    Default Value [none]

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

  • --nodes

    Command-Line Format --nodes

    ndb_config命令限制为只打印在集群配置文件中定义的[ndbd][ndbd default]部分的参数信息(见第25.4.3.6节,“定义NDB集群数据节点”)。

    这个选项与--connections--system选项是互斥的;只能使用其中一个选项。

  • --print-defaults

    Command-Line Format --print-defaults

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

  • --query=query_options, -q query_options

    Command-Line Format --query=string
    Type 字符串
    Default Value

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

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

    Note

    如果给定的参数对于某种类型的节点不适用,那么对应的值将返回空字符串。请参阅本节后面的示例以获取更多信息。

  • --query-all, -a

    Command-Line Format --query-all
    Type 字符串
    Default Value

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

  • --rows=separator, -r separator

    Command-Line Format --rows=字符串
    Type 字符串
    Default Value

    指定结果中行的分隔符串。默认是空格字符。

    Note

    如果分隔符串包含空格或转义(例如\n表示换行符),则必须被引号。

  • --system

    Command-Line Format --system

    告诉ndb_config仅打印SYSTEM信息。这包括不能在运行时更改的系统变量;因此,它们没有对应的集群配置文件部分。它们可以在ndb_config的输出中看到(以****** SYSTEM ******开头)。

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

  • --type=node_类型

    Command-Line Format --type=名称
    Type 枚举
    Default Value [none]
    Valid Values

    ndbd

    mysqld

    ndb_mgmd

    过滤结果,以便只返回指定node_类型(ndbdmysqldndb_mgmd)的配置值。

  • --usage--help-?

    Command-Line Format --help

    使ndb_config打印可用的选项列表,然后退出。

  • --version, -V

    Command-Line Format --version

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

  • --configinfo --xml

    Command-Line Format --configinfo --xml

    使ndb_config --configinfo 提供 XML 输出,添加该选项。以下是一个示例输出的一部分:

    $> ndb_config --configinfo --xml
    
    <configvariables protocolversion="1" ndbversionstring="5.7.44-ndb-7.5.32"
                        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>
    Note

    通常,ndb_config --configinfo --xml 生成的 XML 输出使用一行一个元素;我们在上一个示例中添加了额外空格,以提高可读性。这不会影响使用该输出的应用程序,因为大多数 XML 处理器都忽略非必要空格,或者可以被 instructed 来这样做。

    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"/>

    当前,XML 输出中不包括对不需要初始重启的参数的initial属性;换言之,initial="false"是默认值,如果该属性不存在,则假设其值为false。类似地,默认重启类型为node(即在线或“rolling”重启集群),但只有当重启类型为system时才包括restart属性(表示所有集群节点必须同时关闭,然后重新启动)。

    XML 输出中已弃用的参数由deprecated属性所示,如下所示:

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

    在这种情况下,comment 指的是一个或多个参数,它们超出了已弃用的参数。类似于 initialdeprecated 属性仅在参数被弃用时出现,格式为 deprecated="true",否则不出现。 (Bug #21127135)

    需要的参数以 mandatory="true" 表示,如下所示:

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

    类似于 initialdeprecated 属性仅在需要初始重启或已弃用的参数时出现,mandatory 属性仅在给定的参数实际需要时出现。

    Important

    --xml 选项只能与 --configinfo 选项一起使用。没有使用 --configinfo 时,使用 --xml 将失败。

    与用于获取当前配置数据的选项不同,--configinfo--xml 使用来自 NDB 集群源的信息,当 ndb_config 编译时获得。因此,对于这两个选项,不需要连接到运行的 NDB 集群或访问 config.inimy.cnf 文件。

将其他ndb_config选项(如--query--type)与--configinfo(无论是否使用--xml选项都不支持。当前,如果您尝试这样做,通常结果是忽略所有其他选项except --configinfo--xml然而,这种行为不保证,并且可能随时更改。此外,使用ndb_config时,使用--configinfo选项,不会访问NDB集群或读取任何文件,尝试指定额外的选项,如--ndb-connectstring--config-file--configinfo无效。

  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. 要排除来自任何主机except特定的一些结果,请使用--host选项:

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

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

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