Table of Contents
- 18.1 NDB Cluster Overview
- 18.1.1 NDB Cluster Core Concepts
- 18.1.2 NDB Cluster Nodes, Node Groups, Fragment Replicas, and Partitions
- 18.1.3 NDB Cluster Hardware, Software, and Networking Requirements
- 18.1.4 What is New in MySQL NDB Cluster
- 18.1.5 NDB: Added, Deprecated, and Removed Options, Variables, and Parameters
- 18.1.6 MySQL Server Using InnoDB Compared with NDB Cluster
- 18.1.7 Known Limitations of NDB Cluster
- 18.2 NDB Cluster Installation
- 18.2.1 Installation of NDB Cluster on Linux
- 18.2.2 Installing NDB Cluster on Windows
- 18.2.3 Initial Configuration of NDB Cluster
- 18.2.4 Initial Startup of NDB Cluster
- 18.2.5 NDB Cluster Example with Tables and Data
- 18.2.6 Safe Shutdown and Restart of NDB Cluster
- 18.2.7 Upgrading and Downgrading NDB Cluster
- 18.2.8 The NDB Cluster Auto-Installer (No longer supported)
- 18.3 Configuration of NDB Cluster
- 18.4 NDB Cluster Programs
- 18.4.1 ndbd — The NDB Cluster Data Node Daemon
- 18.4.2 ndbinfo_select_all — Select From ndbinfo Tables
- 18.4.3 ndbmtd — The NDB Cluster Data Node Daemon (Multi-Threaded)
- 18.4.4 ndb_mgmd — The NDB Cluster Management Server Daemon
- 18.4.5 ndb_mgm — The NDB Cluster Management Client
- 18.4.6 ndb_blob_tool — Check and Repair BLOB and TEXT columns of NDB Cluster Tables
- 18.4.7 ndb_config — Extract NDB Cluster Configuration Information
- 18.4.8 ndb_cpcd — Automate Testing for NDB Development
- 18.4.9 ndb_delete_all — Delete All Rows from an NDB Table
- 18.4.10 ndb_desc — Describe NDB Tables
- 18.4.11 ndb_drop_index — Drop Index from an NDB Table
- 18.4.12 ndb_drop_table — Drop an NDB Table
- 18.4.13 ndb_error_reporter — NDB Error-Reporting Utility
- 18.4.14 ndb_index_stat — NDB Index Statistics Utility
- 18.4.15 ndb_move_data — NDB Data Copy Utility
- 18.4.16 ndb_print_backup_file — Print NDB Backup File Contents
- 18.4.17 ndb_print_file — Print NDB Disk Data File Contents
- 18.4.18 ndb_print_frag_file — Print NDB Fragment List File Contents
- 18.4.19 ndb_print_schema_file — Print NDB Schema File Contents
- 18.4.20 ndb_print_sys_file — Print NDB System File Contents
- 18.4.21 ndb_redo_log_reader — Check and Print Content of Cluster Redo Log
- 18.4.22 ndb_restore — Restore an NDB Cluster Backup
- 18.4.23 ndb_select_all — Print Rows from an NDB Table
- 18.4.24 ndb_select_count — Print Row Counts for NDB Tables
- 18.4.25 ndb_setup.py — Start browser-based Auto-Installer for NDB Cluster (DEPRECATED)
- 18.4.26 ndb_show_tables — Display List of NDB Tables
- 18.4.27 ndb_size.pl — NDBCLUSTER Size Requirement Estimator
- 18.4.28 ndb_waiter — Wait for NDB Cluster to Reach a Given Status
- 18.5 Management of NDB Cluster
- 18.5.1 Commands in the NDB Cluster Management Client
- 18.5.2 NDB Cluster Log Messages
- 18.5.3 Event Reports Generated in NDB Cluster
- 18.5.4 Summary of NDB Cluster Start Phases
- 18.5.5 Performing a Rolling Restart of an NDB Cluster
- 18.5.6 NDB Cluster Single User Mode
- 18.5.7 Adding NDB Cluster Data Nodes Online
- 18.5.8 Online Backup of NDB Cluster
- 18.5.9 MySQL Server Usage for NDB Cluster
- 18.5.10 NDB Cluster Disk Data Tables
- 18.5.11 Online Operations with ALTER TABLE in NDB Cluster
- 18.5.12 Distributed Privileges Using Shared Grant Tables
- 18.5.13 NDB API Statistics Counters and Variables
- 18.5.14 ndbinfo: The NDB Cluster Information Database
- 18.5.15 Quick Reference: NDB Cluster SQL Statements
- 18.5.16 NDB Cluster Security Issues
- 18.6 NDB Cluster Replication
- 18.6.1 NDB Cluster Replication: Abbreviations and Symbols
- 18.6.2 General Requirements for NDB Cluster Replication
- 18.6.3 Known Issues in NDB Cluster Replication
- 18.6.4 NDB Cluster Replication Schema and Tables
- 18.6.5 Preparing the NDB Cluster for Replication
- 18.6.6 Starting NDB Cluster Replication (Single Replication Channel)
- 18.6.7 Using Two Replication Channels for NDB Cluster Replication
- 18.6.8 Implementing Failover with NDB Cluster Replication
- 18.6.9 NDB Cluster Backups With NDB Cluster Replication
- 18.6.10 NDB Cluster Replication: Bidrectional and Circular Replication
- 18.6.11 NDB Cluster Replication Conflict Resolution
- 18.7 NDB Cluster Release Notes
MySQL NDB Cluster is a
high-availability, high-redundancy version of MySQL adapted for the
distributed computing environment. The most recent NDB Cluster
release series uses version 8 of the
NDB
storage engine (also known as
NDBCLUSTER
) to enable running several
computers with MySQL servers and other software in a cluster. NDB
Cluster 8.0, now available as a General Availability (GA) release
beginning with version 8.0.19, incorporates version 8.0 of the
NDB
storage engine. NDB Cluster 7.6 and NDB
Cluster 7.5, still available as GA releases, use versions 7.6 and
7.5 of NDB
, respectively. Previous GA releases
still available for use in production, NDB Cluster 7.4 and NDB
Cluster 7.3, incorporate NDB
versions 7.4 and
7.3, respectively. NDB Cluster 7.2, which uses version 7.2 of the
NDB
storage engine, is a past GA release that is
no longer supported for new deployments; legacy NDB 7.2 users are
encouraged to upgrade to NDB 7.6 or NDB 8.0. NDB 7.1 and
older release series are no longer supported or
maintained.
Support for the NDB
storage engine is
not included in standard MySQL Server 5.6 binaries built by Oracle.
Instead, users of NDB Cluster binaries from Oracle should upgrade to
the most recent binary release of NDB Cluster for supported
platforms—these include RPMs that should work with most Linux
distributions. NDB Cluster users who build from source should use
the sources provided for NDB Cluster. (Locations where the sources
can be obtained are listed later in this section.)
This chapter contains information about NDB Cluster 7.3 releases through 5.6.51-ndb-7.3.33 as well as NDB Cluster 7.4 releases through 5.6.51-ndb-7.4.32. The latest available rleases of these are 5.6.51-ndb-7.3.32 and 5.6.51-ndb-7.4.31, respectively. NDB Cluster 8.0 is now available as a General Availability release, and recommended for new deployments; for information about NDB Cluster 8.0, see What is New in NDB Cluster. NDB Cluster 7.6, 7.5, 7.4, and 7.3 are previous GA releases still supported in production. For similar information about NDB Cluster 7.6 and 7.5, see What is New in NDB Cluster.
Supported Platforms. NDB Cluster is currently available and supported on a number of platforms. For exact levels of support available for on specific combinations of operating system versions, operating system distributions, and hardware platforms, please refer to https://www.mysql.com/support/supportedplatforms/cluster.html.
Availability. NDB Cluster binary and source packages are available for supported platforms from https://dev.mysql.com/downloads/cluster/.
NDB Cluster release numbers.
NDB Cluster follows a somewhat different release pattern from the
mainline MySQL Server 5.6 series of releases. In this
Manual and other MySQL documentation, we
identify these and later NDB Cluster releases employing a version
number that begins with “NDB”. This version number is
that of the NDBCLUSTER
storage engine
used in the release, and not of the MySQL server version on which
the NDB Cluster release is based.
Version strings used in NDB Cluster software. The version string displayed by NDB Cluster programs uses this format:
mysql-mysql_server_version-ndb-ndb_engine_version
mysql_server_version
represents the
version of the MySQL Server on which the NDB Cluster release is
based. For all NDB Cluster 7.3 and current NDB Cluster 7.4 releases,
this is “5.6”.
ndb_engine_version
is the version of the
NDB
storage engine used by this release
of the NDB Cluster software. You can see this format used in the
mysql client, as shown here:
shell> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.51-ndb-7.4.32 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT VERSION()\G
*************************** 1. row ***************************
VERSION(): 5.6.51-ndb-7.4.32
1 row in set (0.00 sec)
This version string is also displayed in the output of the
SHOW
command in the ndb_mgm
client:
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @10.0.10.6 (5.6.51-ndb-7.4.32, Nodegroup: 0, *)
id=2 @10.0.10.8 (5.6.51-ndb-7.4.32, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=3 @10.0.10.2 (5.6.51-ndb-7.4.32)
[mysqld(API)] 2 node(s)
id=4 @10.0.10.10 (5.6.51-ndb-7.4.32)
id=5 (not connected, accepting connect from any host)
The version string identifies the mainline MySQL version from which
the NDB Cluster release was branched and the version of the
NDB
storage engine used. For example,
the full version string for NDB 7.4.4 (the first NDB Cluster 7.4 GA
release) is mysql-5.6.23-ndb-7.4.4
. From this we
can determine the following:
Since the portion of the version string preceding
-ndb-
is the base MySQL Server version, this means that NDB 7.4.4 derives from MySQL 5.6.23, and contains all feature enhancements and bug fixes from MySQL 5.6 up to and including MySQL 5.6.23.Since the portion of the version string following
-ndb-
represents the version number of theNDB
(orNDBCLUSTER
) storage engine, NDB 7.4.4 uses version 7.4.4 of theNDBCLUSTER
storage engine.
New NDB Cluster releases are numbered according to updates in the
NDB
storage engine, and do not necessarily
correspond in a one-to-one fashion with mainline MySQL Server
releases. For example, NDB 7.4.4 (as previously noted) is based on
MySQL 5.6.23, while NDB 7.4.3 was based on MySQL 5.6.22 (version
string: mysql-5.6.22-ndb-7.4.3
).
Compatibility with standard MySQL 5.6 releases.
While many standard MySQL schemas and applications can work using
NDB Cluster, it is also true that unmodified applications and
database schemas may be slightly incompatible or have suboptimal
performance when run using NDB Cluster (see
Section 18.1.7, “Known Limitations of NDB Cluster”). Most of these issues
can be overcome, but this also means that you are very unlikely to
be able to switch an existing application datastore—that
currently uses, for example, MyISAM
or InnoDB
—to use the
NDB
storage engine without allowing
for the possibility of changes in schemas, queries, and
applications. In addition, the MySQL Server and NDB Cluster
codebases diverge considerably, so that the standard
mysqld cannot function as a drop-in replacement
for the version of mysqld supplied with NDB
Cluster.
NDB Cluster development source trees. NDB Cluster development trees can also be accessed from https://github.com/mysql/mysql-server.
The NDB Cluster development sources maintained at https://github.com/mysql/mysql-server are licensed under the GPL. For information about obtaining MySQL sources using Git and building them yourself, see Section 2.9.5, “Installing MySQL Using a Development Source Tree”.
As with MySQL Server 5.6, NDB Cluster 7.3 and NDB Cluster 7.4 releases are built using CMake.
NDB Cluster 8.0 is available beginning with NDB 8.0.19 as a General Availability release, and is recommended for new deployments; see What is New in NDB Cluster, for more information. NDB Cluster 7.6 and 7.5 are previous GA releases still supported in production; for information about NDB Cluster 7.6, see What is New in NDB Cluster 7.6. For similar information about NDB Cluster 7.5, see What is New in NDB Cluster 7.5. NDB Cluster 7.4 and 7.3 are previous GA releases still supported in production, although we recommend that new deployments for production use NDB Cluster 8.0.
This chapter represents a work in progress, and its contents are subject to revision as NDB Cluster continues to evolve. Additional information regarding NDB Cluster can be found on the MySQL website at http://www.mysql.com/products/cluster/.
Additional Resources. More information about NDB Cluster can be found in the following places:
For answers to some commonly asked questions about NDB Cluster, see Section A.10, “MySQL 5.6 FAQ: NDB Cluster”.
The NDB Cluster Forum: https://forums.mysql.com/list.php?25.
Many NDB Cluster users and developers blog about their experiences with NDB Cluster, and make feeds of these available through PlanetMySQL.