Skip to content

8. Snapshot Consistency and Atomic State

The combination of --single-transaction and --skip-lock-tables provides point-in-time consistency for InnoDB tables only. Non-transactional storage engines are not guaranteeed to be consistent. This is generally 'good enough' for non-critical services leveraging InnoDB - the fact that you are considering using this package indicates that you likely do not require fully ACID-compliant backups.

8.1 Consistency by Storage Engine

8.1.1 InnoDB (✅ Consistent)

  • All tables captured at the same transaction timestamp
  • Data relationships remain intact (e.g., orders match order items)
  • Non-blocking - reads and writes continue during snapshot

8.1.2 MyISAM, MEMORY, CSV, Archive (⚠️ Inconsistent)

  • Tables are not locked during snapshot
  • May be captured mid-modification
  • Can contain mixed old and new data that never existed together
  • Mixed InnoDB + MyISAM databases will have tables from different points in time

8.2 Additional Limitations

Binary log position: Not captured by default. Point-in-time recovery and replica setup require manual binary log analysis. To capture position, modify build/scripts/snapshot.sh to add --master-data flag.

Testing: Always restore snapshots to a test environment to verify consistency meets your requirements. See Restoration Guide.