Skip to content

Backup

Overview

The internal backup makes a snapshot of the quad store. All triples (including named graph information) are saved to a single RDF file (with a timestamped name) in the configured format. Only formats with support for named graphs are supported. The binary data (uploaded resources) is not copied, this has to be done either manually or by an external cron job. This will most probably change in the future so that the backup configuration can be done at a single place (and also to prevent inconsistent backups). While the backup is running, no modifying request are accepted by the REST interface (PUT, DELETE, POST). Read-only access using GET is possible.

Configuration

All settings configured directly in the entrystore.properties file. The backup is stored in the folder which is specified in the entrystore.properties file. For each backup, a new folder named after the current time will be created.

The parameters are:

entrystore.backup.scheduler=on|off (default: off)
entrystore.backup.folder=/path/to/backup/
entrystore.backup.cronexp=the time when the backup should be run, in Quartz cron format
entrystore.backup.gzip=on|off (default: off)
entrystore.backup.format=n-quads|trig|trix|binaryrdf (default: n-quads)

The Quartz cron expression consists of 6 fields:

  • Seconds
  • Minutes
  • Hours
  • Day Of Month
  • Month
  • Day Of Week

The first three fields may be expressed using a randomizing function rnd() (this is non-standard and a feature of EntryStore). Either an asterisk * for any value or an integer range may be provided. Depending on the position (second, minute, hour) it generates a value between 0-59 or 0-23. The ranges are boundary inclusive. The cron expression is evaluated upon every startup of the EntryStore instance.

The randomization feature is particularly useful in cases where many EntryStore instances are hosted in the same environment to avoid overloading the host in case all instances should start their backup process at the same time.

Example: the expression * rnd(*) rnd(1-3) * * ? starts the backup process sometime between 1:00 am and 3:59 am.

History and Maintenance

EntryStore's backup can perform maintenances by removing outdated backups. It is configured through the following settings in addition to the main backup settings above:

entrystore.backup.maintenance=on|off (default: off) - defines whether maintenance should be performed
entrystore.backup.maintenance.upper-limit=maximum amount of stored backups
entrystore.backup.maintenance.lower-limit=minimum amount of stored backups
entrystore.backup.maintenance.expires-after-days=maximum days a backup is kept

Restore

A backup can be restored by adding two parameters to the configuration file entrystore.properties:

entrystore.repository.import=true
entrystore.repository.import.file=file:///home/user/backup-201110070315.rdf

In addition to the configuration settings above, the following things should be done:

  • The Tomcat server has to be stopped
  • The files in the files folder have to be restored manually by performing a normal file copy operation.
  • The store directory has to be emptied manually, otherwise the triples of the backup are only added to the already existing triples. The old repository is not cleared automatically.
  • The changes of the configuration as seen in the box above have to be done.
  • The Tomcat server can now be started again.