MarkLogic Database Restore Across Clusters
16 July 2020 04:49 PM
There are scenarios where you may want to restore a database from a MarkLogic Server backup that was taken from a database on a different cluster.
Two example scenarios where this may be appropriate:
- For development or testing purposes - you may want to take the content from one system to perform development of testing on a different cluster.
- A system failed, and you need to recreate a cluster and restore the database to the last known good state.
There are constraints on performing a database restore from a MarkLogic database backup across clusters
If running MarkLogic versions prior to 9.0-4 then the following conditions must also be met
Note: Differences in index configuration and/or forest order may result in reindexing or rebalancing after the restore is complete
If you are experiencing difficulties restoring a database backup, you can validate the backup using
1. In the Query Console, execute a simple script that validates restoring the backup. Something like
But with the $db-name and $db-backup-dir set appropriately. The results will be a backup plan in xml format. Look at both the ‘forest-status’ and ‘directory-status’ for each of the forests. Both should have the “okay” value.
A common error for the ‘directory-status’ is “non-existent”. If you get this error, check the following.
- Verify that the backup directory exists on each server in the cluster that has a forest in the database;
- Verify that the backup directory has a “Forests” subdirectory, and the “Forests” directory contains subdirectories for each of the forests that reside on the Server.
- For the above directories, subdirectories and file contents, verify that the MarkLogic process has the proper credentials to access them.
On Unix Systems, the following commands may be useful in troubleshooting:
Transporting Resources to a New Cluster
Phases of Backup or Restore Operation