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