MySQL 8.0 Reference Manual Including MySQL NDB Cluster 8.0

22.5.3.5 Taking an NDB with Parallel Data Nodes

Beginning with NDB 8.0.16, it is possible to take a backup with multiple local data managers (LDMs) acting in parallel on the data nodes. For this to work, all data nodes in the cluster must use multiple LDMs, and each data node must use the same number of LDMs. This means that all data nodes must run ndbmtd (ndbd is single-threaded and thus always has only one LDM) and they must be configured to use multiple LDMs before taking the backup; ndbmtd by default runs in single-threaded mode. You can cause them to use multiple LDMs this by choosing an appropriate setting for one of the multi-threaded data node configuration parameters MaxNoOfExecutionThreads or ThreadConfig. Keep in mind that changing these parameters requires a restart of the cluster; this can be a rolling restart.

Depending on the number of LDMs and other factors, you may also need to increase NoOfFragmentLogParts. If you are using large Disk Data tables, you may also need to increase DiskPageBufferMemory. As with single-threaded backups, you also want or need to make adjustments to settings for BackupDataBufferSize, BackupMemory, and other configuration parameters relating to backups (see Backup parameters).

Once all data nodes are using multiple LDMs, you can take the parallel backup using the START BACKUP command in the NDB management client just as you would if the data nodes were running ndbd (or ndbmtd in single-threaded mode); no additional or special syntax is required, and you can specify a backup ID, wait option, or snapshot option in any combination as needed or desired.

Backups using multiple LDMs create subdirectories, one per LDM, under the directory BACKUP/BACKUP-backup_id/ (which in turn resides under the BackupDataDir) on each data node; these subdirectories are named BACKUP-backup_id-PART-1-OF-N/, BACKUP-backup_id-PART-2-OF-N/, and so on, up to BACKUP-backup_id-PART-N-OF-N/, where backup_id is the backup ID used for this backup and N is the number of LDMs per data node. Each of these subdirectories contains the usual backup files BACKUP-backup_id-0.node_id.Data, BACKUP-backup_id.node_id.ctl, and BACKUP-backup_id.node_id.log, where node_id is the node ID of this data node.

In NDB 8.0.16 and later, ndb_restore automatically checks for the presence of the subdirectories just described; if it finds them, it attempts to restore the backup in parallel. For information about restoring backups taken with multiple LDMs, see Section 22.4.23.2, “Restoring from a backup taken in parallel”.