Skip to main content
Version: Next

About backups

OpenEverest gives every technology the same backup workflow — storages, on-demand backups, schedules, point-in-time recovery and restores — while the provider decides how the data is actually backed up, for example with pgBackRest for PostgreSQL or Percona Backup for MongoDB.

note

Backup support depends on the provider. Most database providers support backups, and many support point-in-time recovery. Check the provider's capabilities in the Plugin Hub or in its README.

Building blocks​

  • Backup storage — an S3-compatible bucket, defined once per namespace and shared by the instances in it. See Backup storage.
  • Backup class — describes how backups are taken for one or more providers. Providers install their backup classes, so you normally just pick one. List them with kubectl get backupclasses.
  • Backup — one backup of an instance, taken on demand or by a schedule.
  • Schedule — a cron schedule on an instance that writes backups to one storage, with optional retention.
  • Point-in-time recovery (PITR) — continuous upload of the instance's transaction log to a storage, so you can restore to any moment within the recovery window.
  • Restore — applies a backup or a point in time to an instance.

What you can do​

TaskWhere
Add an S3 bucket for backupsSettings > Backups storages — Backup storage
Take a backup now, or schedule backupsThe instance's Backups tab — Create backups
Enable point-in-time recoveryThe instance's Backups tab — Point-in-time recovery
Restore an instance from a backup or a point in timeActions > Restore from a backup — Restore a backup
Create a new instance from a backupActions > Create DB from a backup — Create an instance from a backup
Create an instance from a backup that is already in a bucketImport database — Import a backup from storage

Recommendations​

  • Store backups outside the Kubernetes cluster that runs the instances, ideally in another region or account.
  • Use a schedule rather than relying on on-demand backups, and set retention so the bucket does not grow forever.
  • Enable point-in-time recovery for instances where losing even a few hours of data is not acceptable.
  • Test your restores regularly by creating a new instance from a backup.