Backups & Recovery
Automated daily backups and on-demand manual snapshots for all managed databases, plus point-in-time recovery for PostgreSQL.
Daily snapshots plus WAL archiving let you restore to a specific timestamp, not just the last backup.
Automated daily backups
Section titled “Automated daily backups”StackBlaze automatically backs up all managed databases (PostgreSQL, MySQL, MongoDB, Redis with persistence) once per day. Backups run during off-peak hours, typically between 02:00 and 04:00 UTC, to minimize impact on query performance.
All backups are encrypted at rest and stored separately from your primary data, so a lost node or volume never takes your backups with it.
Backup retention by plan
Section titled “Backup retention by plan”| Plan | Snapshot retention | PITR window (PostgreSQL) |
|---|---|---|
| Free | 1 day | Not available |
| Starter | 3 days | Not available |
| Pro | 7 days | 7 days |
| Enterprise | 30 days | 30 days |
Point-in-time recovery (PITR)
Section titled “Point-in-time recovery (PITR)”For managed PostgreSQL on Pro and Enterprise plans, StackBlaze continuously archives write-ahead log (WAL) segments to object storage alongside periodic base backups. This lets you recover to any moment within the retention window, not just the last daily snapshot. Other engines rely on daily and on-demand snapshots.
Initiating a PITR restore
Section titled “Initiating a PITR restore”Navigate to your database in the dashboard, click Backups, then Restore to point in time. Select a target timestamp, then choose:
- Restore to new instance: creates a new database instance at the target timestamp. Your existing database keeps running. Recommended for investigating an incident.
- Restore in-place: replaces the current database with the state at the target timestamp. This is destructive and causes downtime. Only use this when you have no other option.
Manual backups
Section titled “Manual backups”You can trigger a manual snapshot at any time, useful before running a risky migration or major data operation.
From the dashboard: navigate to your database → Backups → Take snapshot now. The snapshot is taken immediately and appears in the backup list within a few minutes.
Manual snapshots are retained according to your plan’s snapshot retention policy and count toward the same retention limit as automated backups.
Restoring from a snapshot
Section titled “Restoring from a snapshot”To restore from a daily snapshot (rather than a specific point in time):
- Navigate to your database and click Backups.
- Select the snapshot you want to restore from the list.
- Click Restore and choose whether to restore to a new instance or in-place.
- Confirm the restore. StackBlaze will notify you by email when the restore completes (usually 2–15 minutes depending on database size).
Backup encryption
Section titled “Backup encryption”All backups are encrypted at rest. Encryption happens before data is written to the backup storage layer, so unencrypted data never lands there, and the keys are managed for you.
If your organisation has specific key-management or data-residency requirements, reach out to support to discuss the options available on Enterprise.
Testing your backups
Section titled “Testing your backups”A backup you’ve never tested is not a backup. StackBlaze recommends testing restores at least quarterly. Use the Restore to new instance option, run your application’s data validation scripts against the restored instance, then delete it.
#!/bin/bash# Point DATABASE_URL at the restored instanceexport DATABASE_URL="postgresql://user:pass@restored-db:5432/dbname"
# Run row count checkspsql $DATABASE_URL -c "SELECT COUNT(*) FROM users;"psql $DATABASE_URL -c "SELECT COUNT(*) FROM orders WHERE created_at > NOW() - INTERVAL '7 days';"
# Run your app's health checkcurl -f http://your-service/health || echo "Health check failed"