#### 23.5.23.3 Restoring from a backup taken in parallel

 NDB Cluster 8.0 supports parallel backups on each data node using [**ndbmtd**](mysql-cluster-programs-ndbmtd.html) with multiple LDMs (see [Section 23.6.8.5, “Taking an NDB Backup with Parallel Data Nodes”](mysql-cluster-backup-parallel-data-nodes.html)). The next two sections describe how to restore backups that were taken in this fashion.

##### 23.5.23.3.1 Restoring a parallel backup in parallel

 Restoring a parallel backup in parallel requires an [**ndb\_restore**](mysql-cluster-programs-ndb-restore.html) binary from an NDB 8.0 distribution. The process is not substantially different from that outlined in the general usage section under the description of the [**ndb\_restore**](mysql-cluster-programs-ndb-restore.html) program, and consists of executing [**ndb\_restore**](mysql-cluster-programs-ndb-restore.html) twice, similarly to what is shown here:

```
$> ndb_restore -n 1 -b 1 -m --backup-path=path/to/backup_dir/BACKUP/BACKUP-backup_id
$> 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**](mysql-cluster-programs-ndb-restore.html) always checks for the existence of parallel subdirectories under the directory indicated by the [`--backup-path`](mysql-cluster-programs-ndb-restore.html#option_ndb_restore_backup-path) option and restores the metadata (serially) and then the table data (in parallel).

##### 23.5.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**](mysql-cluster-programs-ndb-restore.html) with [`--backup-path`](mysql-cluster-programs-ndb-restore.html#option_ndb_restore_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`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-backupdatadir) is `/opt`. To restore the metadata in this case, we can invoke [**ndb\_restore**](mysql-cluster-programs-ndb-restore.html) like this:

```
$> 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**](mysql-cluster-programs-ndb-restore.html) four times, each time using one of the subdirectories in turn, as shown here:

```
$> ndb_restore -n 1 -b 1 -r --backup-path=opt/BACKUP/BACKUP-100/BACKUP-100-PART-1-OF-4
$> ndb_restore -n 1 -b 1 -r --backup-path=opt/BACKUP/BACKUP-100/BACKUP-100-PART-2-OF-4
$> ndb_restore -n 1 -b 1 -r --backup-path=opt/BACKUP/BACKUP-100/BACKUP-100-PART-3-OF-4
$> 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 (7.6 or earlier) that does not support parallel backups, using the [**ndb\_restore**](mysql-cluster-programs-ndb-restore.html) binary supplied with the older version of the NDB Cluster software.

