Documentation Home
MySQL 8.0 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 48.0Mb
PDF (A4) - 48.0Mb
PDF (RPM) - 43.7Mb
HTML Download (TGZ) - 11.1Mb
HTML Download (Zip) - 11.1Mb
HTML Download (RPM) - 9.6Mb
Man Pages (TGZ) - 238.8Kb
Man Pages (Zip) - 342.4Kb
Info (Gzip) - 4.3Mb
Info (Zip) - 4.3Mb
Excerpts from this Manual

MySQL 8.0 Reference Manual  /  MySQL NDB Cluster 8.0

Chapter 22 MySQL NDB Cluster 8.0

Table of Contents

22.1 NDB Cluster Overview
22.1.1 NDB Cluster Core Concepts
22.1.2 NDB Cluster Nodes, Node Groups, Replicas, and Partitions
22.1.3 NDB Cluster Hardware, Software, and Networking Requirements
22.1.4 What is New in NDB Cluster
22.1.5 Options, Variables, and Parameters Added, Deprecated or Removed in NDB 8.0
22.1.6 MySQL Server Using InnoDB Compared with NDB Cluster
22.1.7 Known Limitations of NDB Cluster
22.2 NDB Cluster Installation
22.2.1 The NDB Cluster Auto-Installer
22.2.2 Installation of NDB Cluster on Linux
22.2.3 Installing NDB Cluster on Windows
22.2.4 Initial Configuration of NDB Cluster
22.2.5 Initial Startup of NDB Cluster
22.2.6 NDB Cluster Example with Tables and Data
22.2.7 Safe Shutdown and Restart of NDB Cluster
22.2.8 Upgrading and Downgrading NDB Cluster
22.3 Configuration of NDB Cluster
22.3.1 Quick Test Setup of NDB Cluster
22.3.2 Overview of NDB Cluster Configuration Parameters, Options, and Variables
22.3.3 NDB Cluster Configuration Files
22.3.4 Using High-Speed Interconnects with NDB Cluster
22.4 NDB Cluster Programs
22.4.1 ndbd — The NDB Cluster Data Node Daemon
22.4.2 ndbinfo_select_all — Select From ndbinfo Tables
22.4.3 ndbmtd — The NDB Cluster Data Node Daemon (Multi-Threaded)
22.4.4 ndb_mgmd — The NDB Cluster Management Server Daemon
22.4.5 ndb_mgm — The NDB Cluster Management Client
22.4.6 ndb_blob_tool — Check and Repair BLOB and TEXT columns of NDB Cluster Tables
22.4.7 ndb_config — Extract NDB Cluster Configuration Information
22.4.8 ndb_delete_all — Delete All Rows from an NDB Table
22.4.9 ndb_desc — Describe NDB Tables
22.4.10 ndb_drop_index — Drop Index from an NDB Table
22.4.11 ndb_drop_table — Drop an NDB Table
22.4.12 ndb_error_reporter — NDB Error-Reporting Utility
22.4.13 ndb_import — Import CSV Data Into NDB
22.4.14 ndb_index_stat — NDB Index Statistics Utility
22.4.15 ndb_move_data — NDB Data Copy Utility
22.4.16 ndb_perror — Obtain NDB Error Message Information
22.4.17 ndb_print_backup_file — Print NDB Backup File Contents
22.4.18 ndb_print_file — Print NDB Disk Data File Contents
22.4.19 ndb_print_frag_file — Print NDB Fragment List File Contents
22.4.20 ndb_print_schema_file — Print NDB Schema File Contents
22.4.21 ndb_print_sys_file — Print NDB System File Contents
22.4.22 ndb_redo_log_reader — Check and Print Content of Cluster Redo Log
22.4.23 ndb_restore — Restore an NDB Cluster Backup
22.4.24 ndb_select_all — Print Rows from an NDB Table
22.4.25 ndb_select_count — Print Row Counts for NDB Tables
22.4.26 ndb_setup.py — Start browser-based Auto-Installer for NDB Cluster
22.4.27 ndb_show_tables — Display List of NDB Tables
22.4.28 ndb_size.pl — NDBCLUSTER Size Requirement Estimator
22.4.29 ndb_top — View CPU usage information for NDB threads
22.4.30 ndb_waiter — Wait for NDB Cluster to Reach a Given Status
22.4.31 Options Common to NDB Cluster Programs — Options Common to NDB Cluster Programs
22.5 Management of NDB Cluster
22.5.1 Summary of NDB Cluster Start Phases
22.5.2 Commands in the NDB Cluster Management Client
22.5.3 Online Backup of NDB Cluster
22.5.4 MySQL Server Usage for NDB Cluster
22.5.5 Performing a Rolling Restart of an NDB Cluster
22.5.6 Event Reports Generated in NDB Cluster
22.5.7 NDB Cluster Log Messages
22.5.8 NDB Cluster Single User Mode
22.5.9 Quick Reference: NDB Cluster SQL Statements
22.5.10 ndbinfo: The NDB Cluster Information Database
22.5.11 INFORMATION_SCHEMA Tables for NDB Cluster
22.5.12 NDB Cluster Security Issues
22.5.13 NDB Cluster Disk Data Tables
22.5.14 Online Operations with ALTER TABLE in NDB Cluster
22.5.15 Adding NDB Cluster Data Nodes Online
22.5.16 Distributed MySQL Privileges with NDB_STORED_USER
22.5.17 NDB API Statistics Counters and Variables
22.6 NDB Cluster Replication
22.6.1 NDB Cluster Replication: Abbreviations and Symbols
22.6.2 General Requirements for NDB Cluster Replication
22.6.3 Known Issues in NDB Cluster Replication
22.6.4 NDB Cluster Replication Schema and Tables
22.6.5 Preparing the NDB Cluster for Replication
22.6.6 Starting NDB Cluster Replication (Single Replication Channel)
22.6.7 Using Two Replication Channels for NDB Cluster Replication
22.6.8 Implementing Failover with NDB Cluster Replication
22.6.9 NDB Cluster Backups With NDB Cluster Replication
22.6.10 NDB Cluster Replication: Multi-Master and Circular Replication
22.6.11 NDB Cluster Replication Conflict Resolution
22.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 7.2 and older release series are no longer supported or maintained.

Support for the NDB storage engine is not included in standard MySQL Server 8.0 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 8.0 users who build from source should use the sources provided for MySQL 8.0 and build with the options required to provide NDB support. (Locations where the sources can be obtained are listed later in this section.)

Important

MySQL NDB Cluster does not support InnoDB cluster, which must be deployed using MySQL Server 8.0 with the InnoDB storage engine as well as additional applications that are not included in the NDB Cluster distribution. MySQL Server 8.0 binaries cannot be used with MySQL NDB Cluster. For more information about deploying and using InnoDB cluster, see Chapter 21, InnoDB Cluster. Section 22.1.6, “MySQL Server Using InnoDB Compared with NDB Cluster”, discusses differences between the NDB and InnoDB storage engines.

This chapter contains information about NDB Cluster 8.0 releases through 8.0.21, now available (beginning with NDB 8.0.19) as a General Availability release, and recommended for new deployments. 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; see MySQL NDB Cluster 7.3 and NDB Cluster 7.4.

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 8.0 follows the same release pattern as the MySQL Server 8.0 series of releases, beginning with MySQL 8.0.13 and MySQL NDB Cluster 8.0.13. 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 NDB 8.0 release, and is the same as the MySQL 8.0 server version on which the NDB Cluster 8.0 release is based.

Version strings used in NDB Cluster software.  The version string displayed by the mysql client supplied with the MySQL NDB Cluster distribution uses this format:

mysql-mysql_server_version-cluster

mysql_server_version represents the version of the MySQL Server on which the NDB Cluster release is based. For all NDB Cluster 8.0 releases, this is 8.0.n, where n is the release number. Building from source using -DWITH_NDBCLUSTER or the equivalent adds the -cluster suffix to the version string. (See Section 22.2.2.4, “Building NDB Cluster from Source on Linux”, and Section 22.2.3.2, “Compiling and Installing NDB Cluster from Source on Windows”.) 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: 8.0.21-cluster Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SELECT VERSION()\G
*************************** 1. row ***************************
VERSION(): 8.0.21-cluster
1 row in set (0.00 sec)

The first General Availability release of NDB Cluster using MySQL 8.0 is NDB 8.0.19, using MySQL 8.0.19.

The version string displayed by other NDB Cluster programs not normally included with the MySQL 8.0 distribution 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 8.0 releases, this is 8.0.n, where n is the release number. ndb_engine_version is the version of the NDB storage engine used by this release of the NDB Cluster software. For all NDB 8.0 releases, this number is the same as the MySQL Server version. You can see this format used in the output of the SHOW command in the ndb_mgm client, like this:

ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=1    @10.0.10.6  (mysql-8.0.22 ndb-8.0.21, Nodegroup: 0, *)
id=2    @10.0.10.8  (mysql-8.0.22 ndb-8.0.21, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=3    @10.0.10.2  (mysql-8.0.22 ndb-8.0.21)

[mysqld(API)]   2 node(s)
id=4    @10.0.10.10  (mysql-8.0.22 ndb-8.0.21)
id=5 (not connected, accepting connect from any host)

Compatibility with standard MySQL 8.0 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 22.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. A mysqld compiled without NDB support (that is, built without -DWITH_NDBCLUSTER_STORAGE_ENGINE or its alias -DWITH_NDBCLUSTER) cannot function as a drop-in replacement for a mysqld that is built with it.

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

Note

As with MySQL Server 8.0, NDB Cluster 8.0 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. 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; see MySQL NDB Cluster 7.3 and NDB Cluster 7.4.

The contents of this chapter 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: