Database Snapshots & Disaster Recovery
Create automated or on-demand database snapshots, replicate across regional hubs, and restore or clone databases in seconds.
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
- Log in to your NoCodeBackend dashboard.
- In the top navigation bar or sidebar, click Snapshots (or navigate to
/snapshots). - 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.
- Snapshot Quota Meter: Current snapshots created vs your plan limit (e.g.,
Step 4.2: Create an On-Demand Snapshot
- On the Snapshots page, click + Create Snapshot.
- In the dropdown, select the Database Instance you wish to snapshot.
- (Optional) Provide a descriptive label (e.g.,
Pre-Stripe Migration Backup). - Click Take Snapshot.
- 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:
- Locate the snapshot in the list and click Restore.
- A confirmation modal will appear detailing the target database.
- Type RESTORE in the confirmation input to confirm the destructive action.
- Click Confirm Restore.
- 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:
- Find the snapshot and click Clone as New DB.
- Enter a name for the new database (e.g.,
app_staging_test). - Click Create Clone.
- 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
/snapshotsdashboard 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.
