Backup and Restore Strategy
Regular backup and restore
Hippo recommends backing up the full Hippo Repository database daily.
Creating the backup
All data within Hippo is stored in the database. So making a backup of the database is sufficient to guarantee that no data is lost. While making the database backup there is no need to stop the system and the regular backup procedure for backing up the database can be used.
Restoring the backup
To restore the backup all nodes in the cluster must be stopped. After restoring the database a new index must be built to match the data of the restored backup. This is done by deleting the index folder on all the cluster node before starting the cluster node. At startup the index will automatically be rebuild. The location of the index is usually configured in the context.xml with the parameter repository-directory.
For example:
<Parameter name="repository-directory" value="${catalina.base}/../repository" override="false"/>
The location of the index folder in this case is:
${catalina.base}/../repository/workspaces/default/index
Backup and restore including the Lucene index
During the restore of the database in the normal backup procedure, it is required to rebuild the lucene index. If the repository contains a lot of content, for example hundreds of thousands of documents, this can take several hours. During the rebuilding of the index, the whole cluster is down and the site and cms will be unavailable. For use cases in which this is unacceptable, it is possible to also backup the index, but this process is more complex. Hippo advises to only use this method when there are very strict requirements since normally the time saving is not worth the extra complexity of the backup and restore procedure.
Creating the backup
- Stop one node of the cluster
- Store JOURNAL_ID of the node from the database. This can be found in the table REPOSITORY_LOCAL_REVISIONS.
- Backup Lucene index folder from the stopped cluster node
- Backup database
- Start node
Restoring the backup
- Stop all cluster nodes
- Restore database
- Restore Lucene index folder from backup on all cluster nodes
- Set the JOURNAL_ID in the table REPOSITORY_LOCAL_REVISIONS to the value stored during the backup for all cluster nodes
- Start all cluster nodes