see on GitHub

Backups



Backup List View

'Backups' View

1. Create a manual backup, see the creation view below.
2. Refresh the Recent Backup clock for a manual backup, so that it displays the correct amount of time that has passed since this backup was created.
3. Create a periodic backup task, see the creation view below.
4. View details for this task, see detail view below.
5. Edit this database backup task. To edit server-wide backup tasks, see button #7.
6. Delete this periodic backup task.
7. Go to the server-wide backups view.
8. Restore a database from a backup (this creates a new database, it doesn't modify this database).

1. The periodic server-wide backup for this server.
2. The periodic database backup, which is assigned to this node.

Backup Creation

Figure 1. Backup Task Definition

Create New Backup Task

1) Task Name (Optional)

  • Choose a name of your choice
  • If no name is given then RavenDB server will create one for you based on the defined destination

2) Backup Task Type:

  • Backup
    • Backed Up Data: The database data in a JSON format, including documents, indexes (definitions only) & identities
      (same as exported database format)
    • Size of backup data: Smaller
    • Backup Speed: Faster
    • Restoring: Slower, Indexes have to be rebuilt from their definitions
  • Snapshot
    • Backed Up Data: The raw database data including the indexes (definitions and data)
    • Size of backup data: Larger
    • Backup Speed: Slower
    • Restoring: Faster, Indexes do not have to be rebuilt

3) Preferred Node (Optional)

  • Select a preferred mentor node from the Database Group to be the responsible node for this Backup Task
  • If no node is selected, then the cluster will assign a responsible node (see Members Duties)

Content & Scheduling

Figure 2. Backup Task Schedule and Content

Backup Task Schedule & Content

Select the content to back up. Note: Both types can be scheduled.

  1. Full Backup Full Backup will back up all the database data every time the task is scheduled to work

  2. Incremental Backup Incremental Backup will only back up the delta of the data since the last Backup that has occurred

Schedule the Backup Task to occur at regular intervals (daily, monthly, hourly) at specific times.

Notes:
1. If only Incremental Backup is set, then a Full Backup will occur only in the first time that the Task is triggered,
followed by Incremental Backups according to the scheduled time.
The Full Backup that is done the first time will be either a 'Backup' or a 'Snapshot', depending on the type selected.

  1. Data that is backed up in Incremental Backup is always of type 'Backup' - even if the Backup Task Type is 'Snapshot' !
    A Snapshot is only occurring when scheduling 'Full'.

In the example above:
* A Full Backup is scheduled every day at 02:00 AM - and in addition to that -
* An Incremental Backup is scheduled every 6 hours


Retention Policy

Figure 3. Backup Retention Policy

Retention Policy

1. Enable / disable the retention policy. If disabled, the backups are stored indefinitely. If enabled, deletion can be scheduled.
2. Select the retention period. Once a backup is older than the specified amount of time, it will be deleted during the next scheduled backup task.


Destination

Figure 4. Backup Task Destinations

Backup Destinations

  • Select backup destinations and enter your credentials for each

  • Note: More than one can be selected

  • Available destinations:


Creating Manual Backups

Manual backup creation

Manual backups have only some of the properties of periodic backups. The backup can be full or snapshot. The backup can be encrypted or not. The backup must have a destination, chosen from the same options as a periodic backup.

Manual backups do not have names, they are be identified by the time they were created. Manual backups are not scheduled, they occur exactly once: when the Backup Now button is pressed. The backup cannot be modified afterwards from the Studio.

Manual backups do not have retention policies, in other words they are not set to be automatically deleted.

Periodic Backup Details

'Backups' View

1. Backup Task Details:

  • Task Status - Active / Not Active / Not on Node
  • Destinations - List of all backup destinations defined
  • Last Full Backup - The last time a Full Backup was done (Snapshot / Backup type - depending on task definition)
  • Last Incremental Backup - The last time an Incremental Backup was done
  • Next Estimated Backup - Time for next backup (Full Backup / Incremental Backup / Snapshot - depending on task definition)
  • Last Executed on Node - The cluster node that most recently executed this periodic backup. This can be different from the "responsible node" chosen when the task was first defined, because when the responsible node is down, another node will be assigned the task.

1. Backup Now:
In addition to the scheduled time defined, you can backup your data now.
The scheduled backup will still be triggered as defined.
2. Refresh:
Click to refresh this panel viewed details

When the Cluster or Node are Down

  • When the cluster is down (and there is no leader):

    • Creating a new Ongoing Task is a Cluster-Wide operation,
      thus, a new Ongoing Backup Task cannot be scheduled.

    • If a Backup Task was already defined and active when the cluster went down,
      then the Backup Task will still continue to execute on its defined schedule (on its responsible node).
      But, it will fail to be reported to the cluster and may be run again after the cluster has recovered.

  • When the responsible node is down

    • If the responsible node for the Backup Task is down during the scheduled time,
      then another node from the Database Group will take ownership of the task so that there are no gaps in your backups.

Backup Task -vs- Replication Task

  • RavenDB's External Replication provides you with an off-site live replica/copy of the data.
    ('live' meaning that any changes in the database will be reflected in the replica once they occur).
    This is quite useful if you need to shift operations to a secondary data center.

  • But a replica isn't a backup... It doesn’t present good solutions to many backup scenarios.
    For example, it doesn’t protect you from an accidental collection delete,
    or tell you the state of the system at, say, 9:03 AM last Friday.

  • A backup keeps an exact state of the database at a specific point in time and can be restored