ndb_config-提取NDB群集配置信息
该工具从以下多个来源之一中提取数据节点,SQL节点和API节点的当前配置信息:NDB群集管理节点config.ini
或其my.cnf
文件。默认情况下,管理节点是配置数据的源。要覆盖默认值,请使用--config-file
或--mycnf
选项执行ndb_config 。通过使用指定数据节点的节点ID,也可以将数据节点用作源。--config_from_node=node_id
ndb_config还可以提供所有可用配置参数的脱机转储,以及它们的默认值,最大值和最小值以及其他信息。可以以文本或XML格式生成转储。有关更多信息,请参阅本节后面有关--configinfo
和--xml
选项的讨论。
您可以过滤通过部分结果(DB
,SYSTEM
或CONNECTIONS
使用其中的一个选项)--nodes
,--system
或--connections
。
下表包含特定于ndb_config的选项。附加说明如下表。有关大多数NDB群集程序(包括ndb_config)通用的选项,请参见“ NDB群集程序的通用选项-NDB群集程序的通用选项”。
ndb_config程序的命令行选项
格式 | 描述 | 添加,不建议使用或删除 |
---|---|---|
| 将路径设置为config.ini文件 | (在所有基于MySQL 8.0的版本中受支持) |
| 从具有此ID的节点(必须是数据节点)获取配置数据 | (在所有基于MySQL 8.0的版本中受支持) |
| 以文本格式转储有关所有NDB配置参数的信息,包括默认值,最大值和最小值。与--xml一起使用以获取XML输出 | (在所有基于MySQL 8.0的版本中受支持) |
| 仅打印连接信息(集群配置文件的[tcp],[tcp默认],[sci],[sci默认],[shm]或[shm默认]部分)。不能与--system或--nodes一起使用 | (在所有基于MySQL 8.0的版本中受支持) |
| 仅打印具有非默认值的配置参数 | (在所有基于MySQL 8.0的版本中受支持) |
| 场分隔符 | (在所有基于MySQL 8.0的版本中受支持) |
| 指定主机 | (在所有基于MySQL 8.0的版本中受支持) |
| 从my.cnf文件读取配置数据 | (在所有基于MySQL 8.0的版本中受支持) |
| 获取具有此ID的节点的配置 | (在所有基于MySQL 8.0的版本中受支持) |
| 仅打印节点信息(群集配置文件的[ndbd]或[ndbd默认]部分)。不能与--system或--connections一起使用 | (在所有基于MySQL 8.0的版本中受支持) |
| --ndb-connectstring的缩写 | (在所有基于MySQL 8.0的版本中受支持) |
| 一个或多个查询选项(属性) | (在所有基于MySQL 8.0的版本中受支持) |
| 将所有参数和值转储到单个逗号分隔的字符串中 | (在所有基于MySQL 8.0的版本中受支持) |
| 行分隔符 | (在所有基于MySQL 8.0的版本中受支持) |
| 仅显示SYSTEM部分的信息(请参阅ndb_config --configinfo输出)。不能与--nodes或--connections一起使用 | (在所有基于MySQL 8.0的版本中受支持) |
| 指定节点类型 | (在所有基于MySQL 8.0的版本中受支持) |
| 将--xml和--configinfo结合使用,以XML格式获取所有NDB配置参数的转储,其中包含默认值,最大值和最小值 | (在所有基于MySQL 8.0的版本中受支持) |
--configinfo
该
--configinfo
选项使ndb_config转储由ndb_config组成的NDB Cluster发行版支持的每个NDB Cluster配置参数的列表,包括以下信息:- 每个参数的用途,效果和用法的简要说明
config.ini
文件中可以使用参数的部分- 参数的数据类型或度量单位
- 如果适用,参数的默认值,最小值和最大值
- NDB Cluster发行版本和内部版本信息
默认情况下,此输出为文本格式。此输出的一部分显示在此处:
shell>
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-file=path-to-file
属性 值 命令行格式 --config-file=file_name 类型 文件名 默认值 提供管理服务器的配置文件(
config.ini
)的路径。这可能是相对或绝对路径。如果管理节点与调用ndb_config的主机位于不同的主机上,则必须使用绝对路径。--config_from_node=#
属性 值 命令行格式 --config-from-node=# 类型 数字 默认值 none 最低值 1 最大值 48 从具有此ID的数据节点获取集群的配置数据。
如果具有该ID的节点不是数据节点,则ndb_config失败并显示错误。(相反,要从管理节点获取配置数据,只需忽略此选项。)
--connections
属性 值 命令行格式 --connections 类型 布尔型 默认值 FALSE 告诉ndb_config打印
CONNECTIONS
信息只,也就是说,有关参数的信息中所找到的[tcp]
,[tcp default]
,[shm]
,或[shm default]
群集配置文件的部分(参见第22.3.3.10“NDB簇TCP / IP连接”,和第22.3.3.12“NDB群集共享内存连接”,以获取更多信息)。此选项与
--nodes
和互斥--system
。这三个选项只能使用其中之一。--diff-default
属性 值 命令行格式 --diff-default 类型 布尔型 默认值 FALSE 仅打印具有非默认值的配置参数。
--fields=delimiter
,-f
delimiter
属性 值 命令行格式 --fields=string 类型 string 默认值 指定
delimiter
用于分隔结果中的字段的字符串。默认值为,
(逗号字符)。注意
如果
delimiter
包含空格或转义\n
符(例如换行符),则必须用引号引起来。--host=hostname
属性 值 命令行格式 --host=name 类型 string 默认值 指定要获取其配置信息的节点的主机名。
注意
尽管主机名
localhost
通常解析为IP地址127.0.0.1
,但不一定对所有操作平台和配置都正确。这意味着,如果ndb_config在解析为不同地址的其他主机上运行(例如,在某些版本的SUSE Linux上),则将ndb_configlocalhost
用于时config.ini
,ndb_config--host=localhost
可能会失败。localhost
127.0.0.2
)。通常,为了获得最佳结果,应为所有与主机相关的NDB Cluster值使用数字IP地址,或验证所有NDB Cluster主机localhost
以相同的方式处理。--mycnf
属性 值 命令行格式 --mycnf 类型 布尔型 默认值 FALSE 从
my.cnf
文件中读取配置数据。--ndb-connectstring=connection_string
,-c connection_string
属性 值 命令行格式 --ndb-connectstring=connectstring
--connect-string=connectstring
类型 string 默认值 localhost:1186 指定用于连接到管理服务器的连接字符串。连接字符串的格式与“ NDB群集连接字符串”中所述相同,默认为
localhost:1186
。--nodeid=node_id
属性 值 命令行格式 --ndb-nodeid=# 类型 数字 默认值 0 指定要获取其配置信息的节点的节点ID。
--nodes
属性 值 命令行格式 --nodes 类型 布尔型 默认值 FALSE 告诉ndb_config打印仅与集群配置文件
[ndbd]
或[ndbd default]
部分中定义的参数有关的信息(请)。此选项与
--connections
和互斥--system
。这三个选项只能使用其中之一。--query=query-options
,-q
query-options
属性 值 命令行格式 --query=string 类型 string 默认值 这是一个用逗号分隔的查询选项列表,即要返回的一个或多个节点属性的列表。这些包括
nodeid
(节点ID),类型(节点类型,也就是说,ndbd
,mysqld
,或ndb_mgmd
),并且任何配置参数,其值要被获得。例如,
--query=nodeid,type,datamemory,datadir
返回每个节点的节点ID,节点类型DataMemory
和DataDir
。注意
如果给定参数不适用于某种类型的节点,则将为相应的值返回一个空字符串。有关更多信息,请参见本节后面的示例。
--query-all
,-a
属性 值 命令行格式 --query-all 类型 string 默认值 返回所有查询选项(节点属性)的逗号分隔列表;请注意,该列表是单个字符串。
--rows=separator
,-r
separator
属性 值 命令行格式 --rows=string 类型 string 默认值 指定
separator
用于分隔结果中的行的字符串。默认为空格字符。注意
如果
separator
包含空格或转义\n
符(例如换行符),则必须用引号引起来。--system
属性 值 命令行格式 --system 类型 布尔型 默认值 FALSE 告诉ndb_config
SYSTEM
仅打印信息。它由无法在运行时更改的系统变量组成;因此,集群配置文件中没有对应的部分。****** SYSTEM ******
在ndb_config的输出中可以看到它们(带有)--configinfo
。此选项与
--nodes
和互斥--connections
。这三个选项只能使用其中之一。--type=node_type
属性 值 命令行格式 --type=name 类型 列举 默认值 [none] 有效值 ndbd
mysqld
ndb_mgmd
过滤的结果,从而使施加到指定的节点只配置值
node_type
(ndbd
,mysqld
,或ndb_mgmd
)被返回。--usage
,--help
或-?
属性 值 命令行格式 --help
--usage
使ndb_config打印可用选项列表,然后退出。
--version
,-V
属性 值 命令行格式 --version 使ndb_config打印版本信息字符串,然后退出。
--configinfo
--xml
属性 值 命令行格式 --configinfo --xml 类型 布尔型 默认值 false 原因ndb_config
--configinfo
加入这个选项提供的XML输出。此示例显示了部分此类输出:shell>
ndb_config --configinfo --xml <configvariables protocolversion="1" ndbversionstring="5.7.29-ndb-7.5.17" 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生成的XML输出的
--configinfo
--xml
格式是每个元素一行。为了清晰起见,我们在上一个示例以及下一个示例中添加了额外的空格。这与使用此输出的应用程序没有任何区别,因为大多数XML处理器要么理所当然地忽略了不必要的空格,要么可以被指示这样做。XML输出还指示在更改给定参数时要求使用该
--initial
选项重新启动数据节点。这通过initial="true"
相应<param>
元素中存在属性来表明。另外,还显示了重启类型(system
或node
)。如果给定参数需要系统重启,则通过restart="system"
在相应<param>
元素中存在属性来指示。例如,更改Diskless
参数设置的值需要重新启动系统,如下所示(使用restart
和initial
突出显示属性以提高可见性):<param name="Diskless" comment="Run wo/ disk" type="bool" default="false" restart="system" initial="true"/>
当前,
initial
XML输出中<param>
没有与不需要初始重启的参数相对应的元素的属性;换句话说,initial="false"
它是默认值,false
如果属性不存在,则应采用该值。同样,默认重新启动类型为node
(即集群的联机或“滚动”重新启动),但是restart
仅当重新启动类型为system
(意味着必须同时关闭所有集群节点,然后再关闭)时才包含该属性。重新启动)。不推荐使用的参数在XML输出中由
deprecated
属性指示,如下所示:<param name="NoOfDiskPagesToDiskAfterRestartACC" comment="DiskCheckpointSpeed" type="unsigned" default="20" min="1" max="4294967039" deprecated="true"/>
在这种情况下,
comment
指的是一个或多个取代已弃用参数的参数。与相似initial
,deprecated
仅当不推荐使用参数时,才使用指示属性deprecated="true"
,而对于不推荐使用的参数则完全不出现。(缺陷号21127135)从NDB 7.5.0开始,所需的参数用表示
mandatory="true"
,如下所示:<param name="NodeId" comment="Number identifying application node (mysqld(API))" type="unsigned" mandatory="true" min="1" max="255"/>
与仅针对需要初始重启或已弃用的参数显示
initial
ordeprecated
属性的方式几乎相同,mandatory
仅当实际需要给定参数时才包含该属性。重要
该
--xml
选件只能与该--configinfo
选件一起使用。使用--xml
不带--configinfo
失败会出现错误。与该程序用于获取当前配置数据的选项不同,
--configinfo
并且在编译ndb_config--xml
时使用从NDB群集源获取的信息。因此,这两个选项不需要连接到正在运行的NDB群集,也不需要访问或文件。config.ini
my.cnf
不支持将其他ndb_config选项(例如--query
或--type
)与--configinfo
(带有或不带有该--xml
选项)结合使用。当前,如果尝试这样做,通常的结果是除--configinfo
或之外的所有其他选项--xml
都将被忽略。但是,不能保证此行为并须随时变化。此外,由于ndb_config,与使用时--configinfo
的选项,不访问NDB集群或读取任何文件,试图指定其他选项,如--ndb-connectstring
或--config-file
与--configinfo
无济于事。
例子
要获取集群中每个节点的节点ID和类型:
shell>
./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
选项将每个节点的值放在输出中的新行上。要产生一个连接字符串,数据,SQL和API节点可以使用该连接字符串来连接到管理服务器:
shell>
./ndb_config --config-file=usr/local/mysql/cluster-data/config.ini \ --query=hostname,portnumber --fields=: --rows=, --type=ndb_mgmd 198.51.100.179:1186调用ndb_config只会检查数据节点(使用该
--type
选项),并显示每个节点的ID和主机名的值,以及为其DataMemory
和DataDir
参数设置的值:shell>
./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在此示例中,我们分别使用short选项
-f
和-r
设置字段定界符和行分隔符,以及使用short选项-q
传递要获取的参数列表。要从任何主机(特别是主机)中排除结果,请使用以下
--host
选项:shell>
./ndb_config --host=198.51.100.176 -f : -r '\n' -q id,type 3:ndbd 5:ndb_mgmd在此示例中,我们还使用简写形式
-q
来确定要查询的属性。同样,您可以使用该
--nodeid
选项将结果限制为具有特定ID的节点。