ndb_config (1) - Linux Manuals

ndb_config: extract MySQL Cluster configuration information

NAME

ndb_config - extract MySQL Cluster configuration information

SYNOPSIS

ndb_config options

DESCRIPTION

This tool extracts current configuration information for data nodes, SQL nodes, and API nodes from a cluster management node (and possibly its config.ini file). Beginning with MySQL Cluster NDB 6.3.25 and MySQL Cluster NDB 7.0.6, it can also provide an offline dump (in text or XML format) of all configuration parameters which can be used, along with their default, maximum, and minimum values and other information (see the discussion of the --configinfo and --xml options later in this section).

The following table includes options that are specific to ndb_config. Additional descriptions follow the table. For options common to all MySQL Cluster programs, see Section 17.4.2, lqOptions Common to MySQL Cluster Programsrq.

* --usage, --help, or -?
Command-Line Format --help

Causes ndb_config to print a list of available options, and then exit.

* --version, -V
Command-Line Format -V

Causes ndb_config to print a version information string, and then exit.

* --ndb-connectstring=connect_string
Command-Line Format --ndb-connectstring=name
  Permitted Values
Type string
Default localhost:1186

Specifies the connectstring to use in connecting to the management server. The format for the connectstring is the same as described in Section 17.3.2.3, lqThe MySQL Cluster Connectstringrq, and defaults to localhost:1186.

The use of -c as a short version for this option is supported for ndb_config beginning with MySQL 5.1.12.

* --config-file=path-to-file

Gives the path to the management server's configuration file (config.ini). This may be a relative or absolute path. If the management node resides on a different host from the one on which ndb_config is invoked, then an absolute path must be used.

* --query=query-options, -q query-options
Command-Line Format --query=string
  Permitted Values
Type string
Default

This is a comma-delimited list of query options --- that is, a list of one or more node attributes to be returned. These include id (node ID), type (node type --- that is, ndbd, mysqld, or ndb_mgmd), and any configuration parameters whose values are to be obtained.

For example, --query=id,type,indexmemory,datamemory would return the node ID, node type, DataMemory, and IndexMemory for each node.


Note
If a given parameter is not applicable to a certain type of node, than an empty string is returned for the corresponding value. See the examples later in this section for more information.

* --host=hostname
Command-Line Format --host=name
  Permitted Values
Type string
Default

Specifies the host name of the node for which configuration information is to be obtained.


Note
While the hostname localhost usually resolves to the IP address 127.0.0.1, this may not necessarily be true for all operating platforms and configurations. This means that it is possible, when localhost is used in config.ini, for ndb_config --host=localhost to fail if ndb_config is run on a different host where localhost resolves to a different address (for example, on some versions of SUSE Linux, this is 127.0.0.2). In general, for best results, you should use numeric IP addresses for all MySQL Clustewr configuration values relating to hosts, or verify that all MySQL Cluster hosts handle localhost in the same fashion.

* --id=node_id, --nodeid=node_id

Used to specify the node ID of the node for which configuration information is to be obtained.

* --nodes
Command-Line Format --nodes
  Permitted Values
Type boolean
Default FALSE

(Tells ndb_config to print information from parameters defined in [ndbd] sections only. Currently, using this option has no affect, since these are the only values checked, but it may become possible in future to query parameters set in [tcp] and other sections of cluster configuration files.)

* --type=node_type
Command-Line Format --type=name
  Permitted Values
Type enumeration
Default
Valid Values ndbd, mysqld, ndb_mgmd

Filters results so that only configuration values applying to nodes of the specified node_type (ndbd, mysqld, or ndb_mgmd) are returned.

* --fields=delimiter, -f delimiter
Command-Line Format --fields=string
  Permitted Values
Type string
Default

Specifies a delimiter string used to separate the fields in the result. The default is lq,rq (the comma character).


Note
If the delimiter contains spaces or escapes (such as \n for the linefeed character), then it must be quoted.

* --rows=separator, -r separator
Command-Line Format --rows=string
  Permitted Values
Type string
Default

Specifies a separator string used to separate the rows in the result. The default is a space character.


Note
If the separator contains spaces or escapes (such as \n for the linefeed character), then it must be quoted.

* --configinfo

The --configinfo option, added in MySQL Cluster NDB 6.3.25 and MySQL Cluster NDB 7.0.6, causes ndb_config to dump a list of each MySQL Cluster configuration parameter supported by the MySQL Cluster distribution of which ndb_config is a part, including the following information:

* A brief description of each parameter's purpose, effects, and usage

* The section of the config.ini file where the parameter may be used

* The parameter's data type or unit of measurement

* Where applicable, the parameter's default, minimum, and maximum values

* A brief description of the parameter's purpose, effects, and usage

* MySQL Cluster release version and build information
By default, this output is in text format. Part of this output is shown here:

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)
...

--configinfo --xml

Version Introduced 5.1.34-ndb-7.0.6
Command-Line Format --configinfo --xml
  Permitted Values
Type boolean
Default false

You can obtain the output of ndb_config --configinfo as XML by adding the --xml option (like the --configinfo option, available beginning with MySQL Cluster NDB 6.3.25 and MySQL Cluster NDB 7.0.6). A portion of the resulting output is shown in this example:

shell> ndb_config --configinfo --xml
<configvariables protocolversion="1" ndbversionstring="mysql-5.1.34 ndb-7.0.6"
                    ndbversion="458758" ndbversionmajor="7" ndbversionminor="0"
                    ndbversionbuild="6">
  <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="NDBD">
    <param name="MaxNoOfSubscriptions" comment="Max no of subscriptions (default 0 == MaxNoOfTables)"
              type="unsigned" default="0" min="0" max="4294967039"/>
    <param name="MaxNoOfSubscribers" comment="Max no of subscribers (default 0 == 2 * MaxNoOfTables)"
              type="unsigned" default="0" min="0" max="4294967039"/>
    ...
  </section>
  ...
</configvariables>


Note
Normally, the XML output produced by ndb_config --configinfo --xml is formatted using one line per element; we have added extra whitespace in the previous example, as well as the next one, for reasons of legibility. This should not make any difference to applications using this output, since most XML processors either ignore nonessential whitespace as a matter of course, or can be instructed to do so.

Beginning with MySQL Cluster NDB 6.3.29 and MySQL Cluster NDB 7.0.10, the XML output also indicates when changing a given parameter requires that nodes be restarted using the --initial option. This is shown by the presence of an initial="true" attribute in the corresponding <param> element. In addition (also beginning with MySQL Cluster NDB 6.3.29 and MySQL Cluster NDB 7.0.10), the restart type (system or node) is also shown; if a given parameter requires a system restart, this is indicated by the presence of a restart="system" attribute in the corresponding <param> element. For example, the Diskless parameter requires a system initial restart, as shown here (with the restart and initial attributes highlighted for visibility):

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

Currently, no initial attribute is included in the XML output for <param> elements corresponding to parameters which do not require initial restarts; in other words, initial="false" is the default, and the value false should be assumed if the attribute is not present. Similarly, the default restart type is node (that is, an online or lqrollingrq restart of the cluster), but the restart attribute is included only if the restart type is system (meaning that all cluster nodes must be shut down at the same time, then restarted).


Important
The --xml option can be used only with the --configinfo option. Using --xml without --configinfo fails with an error.

Unlike the options used with this program to obtain current configuration data, --configinfo and --xml use information obtained from the MySQL Cluster sources when ndb_config was compiled. For this reason, no connection to a running MySQL Cluster or access to a config.ini or my.cnf file is required for these two options.

Combining other ndb_config options (such as --query or --type) with --configinfo or --xml is not supported. If you attempt to do so, the usual (current) result is that all other options besides --configinfo or --xml are simply ignored. However, this behavior is not guaranteed and is subject to change at any time. In addition, since ndb_config when used with the --configinfo option does not access the MySQL Cluster or read any files, trying to specify additional options such as --ndb-connectstring or --config-file with --configinfo serves no purpose.

Examples:

1. To obtain the node ID and type of each node in the cluster:

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

In this example, we used the --fields options to separate the ID and type of each node with a colon character (:), and the --rows options to place the values for each node on a new line in the output.

2. To produce a connectstring that can be used by data, SQL, and API nodes to connect to the management server:

shell> ./ndb_config --config-file=usr/local/mysql/cluster-data/config.ini --query=hostname,portnumber --fields=: --rows=, --type=ndb_mgmd
192.168.0.179:1186

3. This invocation of ndb_config checks only data nodes (using the --type option), and shows the values for each node's ID and host name, and its DataMemory, IndexMemory, and DataDir parameters:

shell> ./ndb_config --type=ndbd --query=id,host,datamemory,indexmemory,datadir -f ' : ' -r '\n'
1 : 192.168.0.193 : 83886080 : 18874368 : /usr/local/mysql/cluster-data
2 : 192.168.0.112 : 83886080 : 18874368 : /usr/local/mysql/cluster-data
3 : 192.168.0.176 : 83886080 : 18874368 : /usr/local/mysql/cluster-data
4 : 192.168.0.119 : 83886080 : 18874368 : /usr/local/mysql/cluster-data

In this example, we used the short options -f and -r for setting the field delimiter and row separator, respectively.

4. To exclude results from any host except one in particular, use the --host option:

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

In this example, we also used the short form -q to determine the attributes to be queried.

Similarly, you can limit results to a node with a specific ID using the --id or --nodeid option.

COPYRIGHT


Copyright © 2008, 2010, Oracle and/or its affiliates. All rights reserved.

This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.

This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.

AUTHOR

Oracle Corporation (http://dev.mysql.com/).

SEE ALSO

For more information, please refer to the MySQL Reference Manual, which may already be installed locally and which is also available online at http://dev.mysql.com/doc/.