MySQL 8.0 Reference Manual Including MySQL NDB Cluster 8.0

23.4.23.3 Restoring from a backup taken in parallel

Beginning with NDB Cluster 8.0.16, it is possible to take parallel backups on each data node using ndbmtd with multiple LDMs (see Section 23.5.8.5, “Taking an NDB Backup with Parallel Data Nodes”). The next two sections describe how to restore backups that were taken in this fashion.

23.4.23.3.1 Restoring a parallel backup in parallel

Restoring a parallel backup in parallel requires an ndb_restore binary from an NDB Cluster distribution version 8.0.16 or later. The process is not substantially different from that outlined in the general usage section under the description of the ndb_restore program, and consists of executing ndb_restore twice, similarly to what is shown here:

shell> ndb_restore -n 1 -b 1 -m --backup-path=path/to/backup_dir/BACKUP/BACKUP-backup_id
shell> ndb_restore -n 1 -b 1 -r --backup-path=path/to/backup_dir/BACKUP/BACKUP-backup_id

backup_id is the ID of the backup to be restored. In the general case, no additional special arguments are required; ndb_restore always checks for the existence of parallel subdirectories under the directory indicated by the --backup-path option and restores the metadata (serially) and then the table data (in parallel).

23.4.23.3.2 Restoring a parallel backup serially

It is possible to restore a backup that was made using parallelism on the data nodes in serial fashion. To do this, invoke ndb_restore with --backup-path pointing to the subdirectories created by each LDM under the main backup directory, once to any one of the subdirectories to restore the metadata (it does not matter which one, since each subdirectory contains a complete copy of the metadata), then to each of the subdirectories in turn to restore the data. Suppose that we want to restore the backup having backup ID 100 that was taken with four LDMs, and that the BackupDataDir is /opt. To restore the metadata in this case, we can invoke ndb_restore like this:

shell> ndb_restore -n 1 -b 1 -m --backup-path=opt/BACKUP/BACKUP-100/BACKUP-100-PART-1-OF-4

To restore the table data, execute ndb_restore four times, each time using one of the subdirectories in turn, as shown here:

shell> ndb_restore -n 1 -b 1 -r --backup-path=opt/BACKUP/BACKUP-100/BACKUP-100-PART-1-OF-4
shell> ndb_restore -n 1 -b 1 -r --backup-path=opt/BACKUP/BACKUP-100/BACKUP-100-PART-2-OF-4
shell> ndb_restore -n 1 -b 1 -r --backup-path=opt/BACKUP/BACKUP-100/BACKUP-100-PART-3-OF-4
shell> ndb_restore -n 1 -b 1 -r --backup-path=opt/BACKUP/BACKUP-100/BACKUP-100-PART-4-OF-4

You can employ the same technique to restore a parallel backup to an older version of NDB Cluster (prior to NDB 8.0.16) that does not support parallel backups, using the ndb_restore binary supplied with the older version of the NDB Cluster software.