ndbd (8) Linux Manual Page
ndbd – the MySQL Cluster data node daemon
Synopsis
-
ndbdoptions
Description
ndbd
ndbd processes cooperate in handling data. These processes can execute on the same computer (host) or on different computers. The correspondences between data nodes and Cluster hosts is completely configurable. The following table includes command options specific to the MySQL Cluster data node program ndbd. Additional descriptions follow the table. For options common to all MySQL Cluster programs, see Section 17.4.2, lqOptions Common to MySQL Cluster Programsrq.
-
Note
All of these options also apply to the multi-threaded version of this program —ndbmtd, which is available in MySQL Cluster NDB 7.0 — and you may substitute lqndbmtdrq for lqndbdrq wherever the latter occurs in this section. For options common to all NDBCLUSTER programs, see Section 17.4.2, lqOptions Common to MySQL Cluster Programsrq.- *
–bind-addressVersion Introduced5.1.12 Command-Line Format–bind-address=name Permitted ValuesTypestring DefaultCauses
ndbdto bind to a specific network interface (host name or IP address). This option has no default value. This option was added in MySQL 5.1.12.
- *
–daemon,-dCommand-Line Format–daemon Permitted ValuesTypeboolean DefaultTRUE Instructs
ndbdto execute as a daemon process. This is the default behavior.–nodaemoncan be used to prevent the process from running as a daemon. This option has no effect when runningndbdorndbmtdon Windows platforms.
- *
–initialCommand-Line Format–initial Permitted ValuesTypeboolean DefaultFALSE Instructs
ndbdto perform an initial start. An initial start erases any files created for recovery purposes by earlier instances ofndbd. It also re-creates recovery log files. Note that on some operating systems this process can take a substantial amount of time. An–initialstart is to be used only when starting thendbdprocess under very special circumstances; this is because this option causes all files to be removed from the Cluster file system and all redo log files to be re-created. These circumstances are listed here:- * When performing a software upgrade which has changed the contents of any files.
- * When restarting the node with a new version of
ndbd.
- * As a measure of last resort when for some reason the node restart or system restart repeatedly fails. In this case, be aware that this node can no longer be used to restore data due to the destruction of the data files.
- Use of this option prevents the StartPartialTimeout and StartPartitionedTimeout configuration parameters from having any effect.
-
Important
This option does not affect either of the following:- * Backup files that have already been created by the affected node
- * MySQL Cluster Disk Data files (see Section 17.5.10, lqMySQL Cluster Disk Data Tablesrq).
- This option also has no effect on recovery of data by a data node that is just starting (or restarting) from data nodes that are already running. This recovery of data occurs automatically, and requires no user intervention in a MySQL Cluster that is running normally.
It is permissible to use this option when starting the cluster for the very first time (that is, before any data node files have been created); however, it is not necessary to do so.
- *
–initial-startVersion Introduced5.1.11 Command-Line Format–initial-start Permitted ValuesTypeboolean DefaultFALSE This option is used when performing a partial initial start of the cluster. Each node should be started with this option, as well as
–nowait-nodes. Suppose that you have a 4-node cluster whose data nodes have the IDs 2, 3, 4, and 5, and you wish to perform a partial initial start using only nodes 2, 4, and 5 — that is, omitting node 3:-
shell>
ndbd --ndb-nodeid=2 --nowait-nodes=3 --initial-startshell>ndbd --ndb-nodeid=4 --nowait-nodes=3 --initial-startshell>ndbd --ndb-nodeid=5 --nowait-nodes=3 --initial-start
Prior to MySQL 5.1.19, it was not possible to perform DDL operations involving Disk Data tables on a partially started cluster. (See m[blue]
Bug#24631m[][1].) When using this option, you must also specify the node ID for the data node being started with the–ndb-nodeidoption. This option was added in MySQL 5.1.11.-
Important
Do not confuse this option with the–nowait-nodesoption added forndb_mgmdin MySQL Cluster NDB 7.0.10, which can be used to allow a cluster configured with multiple management servers to be started without all management servers being online.- *
–nowait-nodes=node_id_1[,node_id_2[, …]]Version Introduced5.1.9 Command-Line Format–nowait-nodes=list Permitted ValuesTypestring DefaultThis option takes a list of data nodes which for which the cluster will not wait for before starting. This can be used to start the cluster in a partitioned state. For example, to start the cluster with only half of the data nodes (nodes 2, 3, 4, and 5) running in a 4-node cluster, you can start each
ndbdprocess with–nowait-nodes=3,5. In this case, the cluster starts as soon as nodes 2 and 4 connect, and does not wait StartPartitionedTimeout milliseconds for nodes 3 and 5 to connect as it would otherwise. If you wanted to start up the same cluster as in the previous example without onendbd— say, for example, that the host machine for node 3 has suffered a hardware failure — then start nodes 2, 4, and 5 with–nowait-nodes=3. Then the cluster will start as soon as nodes 2, 4, and 5 connect and will not wait for node 3 to start. This option was added in MySQL 5.1.9.
- *
–nodaemonCommand-Line Format–nodaemon Permitted ValuesTypeboolean DefaultFALSE Permitted ValuesType(windows)boolean DefaultTRUE Instructs
ndbdnot to start as a daemon process. This is useful whenndbdis being debugged and you want output to be redirected to the screen. As of MySQL Cluster NDB 7.0.8, the default behavior forndbdandndbmtdon Windows is to run in the foreground, making this option unnecessary on Windows platforms. (m[blue]Bug#45588m[][2])
- *
–nostart,-nCommand-Line Format–nostart Permitted ValuesTypeboolean DefaultFALSE Instructs
ndbdnot to start automatically. When this option is used,ndbdconnects to the management server, obtains configuration data from it, and initializes communication objects. However, it does not actually start the execution engine until specifically requested to do so by the management server. This can be accomplished by issuing the proper START command in the management client (see Section 17.5.2, lqCommands in the MySQL Cluster Management Clientrq).
ndbdgenerates a set of log files which are placed in the directory specified by DataDir in the config.ini configuration file. These log files are listed below. node_id is the node’s unique identifier. Note that node_id represents the node’s unique identifier. For example, ndb_2_error.log is the error log generated by the data node whose node ID is 2.- * ndb_node_id_error.log is a file containing records of all crashes which the referenced
ndbdprocess has encountered. Each record in this file contains a brief error string and a reference to a trace file for this crash. A typical entry in this file might appear as shown here:-
Date/Time: Saturday 30 July 2004 - 00:20:01 Type of error: error Message: Internal program error (failed ndbrequire) Fault ID: 2341 Problem data: DbtupFixAlloc.cpp Object of reference: DBTUP (Line: 173) ProgramName: NDB Kernel ProcessID: 14909 TraceFile: ndb_2_trace.log.2 ***EOM***
Listings of possible
ndbdexit codes and messages generated when a data node process shuts down prematurely can be found in m[blue]ndbd Error Messagesm[][3].-
Important
The last entry in the error log file is not necessarily the newest one (nor is it likely to be). Entries in the error log are not listed in chronological order; rather, they correspond to the order of the trace files as determined in the ndb_node_id_trace.log.next file (see below). Error log entries are thus overwritten in a cyclical and not sequential fashion.- * ndb_node_id_trace.log.trace_id is a trace file describing exactly what happened just before the error occurred. This information is useful for analysis by the MySQL Cluster development team. It is possible to configure the number of these trace files that will be created before old files are overwritten. trace_id is a number which is incremented for each successive trace file.
- * ndb_node_id_trace.log.next is the file that keeps track of the next trace file number to be assigned.
- * ndb_node_id_out.log is a file containing any data output by the
ndbdprocess. This file is created only ifndbdis started as a daemon, which is the default behavior.
- * ndb_node_id.pid is a file containing the process ID of the
ndbdprocess when started as a daemon. It also functions as a lock file to avoid the starting of nodes with the same identifier.
- * ndb_node_id_signal.log is a file used only in debug versions of
ndbd, where it is possible to trace all incoming, outgoing, and internal messages with their data in thendbdprocess.
It is recommended not to use a directory mounted through NFS because in some environments this can cause problems whereby the lock on the .pid file remains in effect even after the process has terminated. To start
ndbd, it may also be necessary to specify the host name of the management server and the port on which it is listening. Optionally, one may also specify the node ID that the process is to use.shell> ndbd --connect-string="nodeid=2;host=ndb_mgmd.mysql.com:1186"See Section 17.3.2.3, lqThe MySQL Cluster Connectstringrq, for additional information about this issue.
ndbd(8), describes other options forndbd. Whenndbdstarts, it actually initiates two processes. The first of these is called the lqangel processrq; its only job is to discover when the execution process has been completed, and then to restart thendbdprocess if it is configured to do so. Thus, if you attempt to killndbdvia the Unixkillcommand, it is necessary to kill both processes, beginning with the angel process. The preferred method of terminating anndbdprocess is to use the management client and stop the process from there. The execution process uses one thread for reading, writing, and scanning data, as well as all other activities. This thread is implemented asynchronously so that it can easily handle thousands of concurrent actions. In addition, a watch-dog thread supervises the execution thread to make sure that it does not hang in an endless loop. A pool of threads handles file I/O, with each thread able to handle one open file. Threads can also be used for transporter connections by the transporters in thendbdprocess. In a multi-processor system performing a large number of operations (including updates), thendbdprocess can consume up to 2 CPUs if permitted to do so. For a machine with many CPUs it is possible to use severalndbdprocesses which belong to different node groups; however, such a configuration is still considered experimental and is not supported for MySQL 5.1 in a production setting. See Section 17.1.5, lqKnown Limitations of MySQL Clusterrq.
-
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/.
Notes
- 1.
- Bug#24631
- 2.
- Bug#45588
- 3.
- ndbd Error Messages
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/.
Author
Oracle Corporation (http://dev.mysql.com/).
- *
-
-
- *
