Backup and restore

Backup And Restore Overview

Bloodraven backs up MySQL with mysqlsh util.dumpInstance() and restores with util.loadDump(). Backups are configured on MysqlFailoverGroup.spec.backup; one-off backup runs use MysqlBackup.

Choose a storage backend

BackendBest forAvoid when
S3Off-cluster durable backups, cross-cluster restore, production DRYou cannot grant object-store credentials safely
PVCLocal labs, isolated environments, short-term stagingYou need disaster recovery after cluster or storage loss
PITRLower RPO between full dumpsYou cannot operate binlog archive storage and verification

Workflow

  1. Configure a backup profile on the failover group.
  2. Add a schedule for recurring backups.
  3. Trigger one manual MysqlBackup before go-live.
  4. Verify the backup with MysqlBackupVerification.
  5. Document the restore path and test it on a non-production group.

Backup source eligibility

Bloodraven prefers a healthy replica within the configured backup lag threshold and falls back to the confirmed active primary. A healthy dr-only follower remains eligible. A read-only site is never selected as an automatic backup source, and setting sourceSiteOverride or kubectl bloodraven backup --source-site to a reader is rejected. This keeps application read pools and backup load separate; reclassify the site only if you intend to change its operational role.

Start here

Restore safetyspec.initFromBackup initializes a new failover group from a backup. In-place restore controls are destructive. Confirm target namespace, failover group name, source backup, and DNS exposure before applying restore manifests.
Copyright © 2026