Build and manage

Database Snapshots & Disaster Recovery

Create automated or on-demand database snapshots, replicate across regional hubs, and restore or clone databases in seconds.

Database administrators, backend engineers, and DevOps5 min read

Database Snapshots & Disaster Recovery

NoCodeBackend provides integrated point-in-time database snapshots that allow you to safeguard your production data, revert accidental changes, and clone entire databases for staging and testing in seconds.


1. Overview: What is a Database Snapshot?

A snapshot is a complete, frozen image of your database at an exact moment in time. Unlike simple file backups, a NoCodeBackend snapshot captures:

  • Full Relational Schema: All table definitions, column types, default values, and character sets.
  • Constraints & Indexes: Foreign key relationships, unique indexes, and primary keys.
  • Complete Row Data: Every record stored across all tables in that database instance.
  • Authentication & Metadata Configuration: Auth settings, table permissions, and user accounts.

Why Use Snapshots?

  • Pre-Migration Safety: Take an instant snapshot before modifying table columns, deleting legacy tables, or running batch updates.
  • Accidental Deletion Rollback: If a buggy script or human error deletes critical records, restore the snapshot to roll back the database immediately.
  • Instant Staging Environments: Clone an existing production snapshot into a brand new database instance to test frontend features with realistic data without risking live production records.

2. Multi-Hub Cross-Region Replication

NoCodeBackend operates a multi-hub high-availability backup architecture:

  • Snapshots created on US West (Phoenix) and EU Central (Frankfurt) hubs are automatically indexed and replicated across regional storage buckets.
  • Even in the event of an infrastructure disruption in one region, your snapshots remain accessible and restorable from our redundant multi-region archive.

3. Automated Daily Snapshots vs On-Demand Snapshots

| Feature | Automated Daily Snapshots | On-Demand Manual Snapshots | | :--- | :--- | :--- | | Trigger | Scheduled automatically by system cron | Initiated manually via dashboard | | Frequency | Once every 24 hours | Anytime (e.g., before deployments) | | Retention | Automatically rotated according to plan retention | Kept indefinitely until manually deleted | | Use Case | Routine disaster recovery & peace of mind | Feature releases, schema changes, migrations |


4. Step-by-Step Guide: Managing Snapshots

Step 4.1: Access the Snapshots Dashboard

  1. Log in to your NoCodeBackend dashboard.
  2. In the top navigation bar or sidebar, click Snapshots (or navigate to /snapshots).
  3. You will see:
    • Snapshot Quota Meter: Current snapshots created vs your plan limit (e.g., 4 of 10 snapshots used).
    • Snapshot Table: History of all snapshots with instance name, creation date, snapshot size, and region.

Step 4.2: Create an On-Demand Snapshot

  1. On the Snapshots page, click + Create Snapshot.
  2. In the dropdown, select the Database Instance you wish to snapshot.
  3. (Optional) Provide a descriptive label (e.g., Pre-Stripe Migration Backup).
  4. Click Take Snapshot.
  5. NoCodeBackend locks the database tables momentarily in read-only mode to guarantee transaction consistency, exports the full dump, and saves the snapshot.

Step 4.3: Restoring a Database from a Snapshot

If you need to roll back a database to a prior snapshot:

  1. Locate the snapshot in the list and click Restore.
  2. A confirmation modal will appear detailing the target database.
  3. Type RESTORE in the confirmation input to confirm the destructive action.
  4. Click Confirm Restore.
  5. The restore engine flushes current tables and reconstructs the database structure and data to match the exact state captured in that snapshot.
💡

Caution: Restoring a snapshot will overwrite any records created after the snapshot was taken. We recommend taking a fresh manual snapshot of the current state before executing a restore.

Step 4.4: Cloning a Database from a Snapshot

Instead of overwriting an active database, you can clone a snapshot into a new database:

  1. Find the snapshot and click Clone as New DB.
  2. Enter a name for the new database (e.g., app_staging_test).
  3. Click Create Clone.
  4. A brand new, completely independent database instance will be provisioned with its own REST API endpoints and secret keys, pre-populated with all data from the snapshot.

5. Capacity Management & Limits

Your snapshot limit is determined by your subscription or lifetime plan (and any snapshots delegated to or from team invitees):

  • When your snapshot limit is reached, you cannot create new manual snapshots until you delete older snapshots.
  • To delete a snapshot, click the Delete (Trash) icon next to any obsolete snapshot and confirm. The snapshot capacity is freed immediately.

6. Troubleshooting

Common Errors

Error: Snapshot limit exceeded

  • Cause: You have reached the maximum number of snapshots allowed by your plan or delegated limit.
  • Resolution: Delete obsolete snapshots from the /snapshots dashboard or upgrade your plan to increase snapshot capacity.

Error: Cannot restore: Database connection active

  • Cause: Ongoing long-running batch write transactions are actively holding database locks.
  • Resolution: Wait for background scripts or bulk imports to complete before initiating the restore.
Database Snapshots & Disaster Recovery | Help Center