Backup and Restore
FrogDB uses RocksDB snapshots (not RDB files) for backup and recovery.
Snapshot-Based Backup
Section titled “Snapshot-Based Backup”[snapshot]snapshot-dir = "/var/lib/frogdb/snapshots"snapshot-interval-secs = 3600 # Hourly snapshotsmax-snapshots = 5Trigger a manual snapshot: BGSAVE
Copy snapshots off-host for disaster recovery:
aws s3 sync /var/lib/frogdb/snapshots/ s3://my-backups/frogdb/$(date +%Y%m%d)/Replica-Based Backup
Section titled “Replica-Based Backup”A replica serves as a live backup. On primary failure, the orchestrator promotes the replica. See Replication.
For offline backups: stop a dedicated backup replica, copy its data directory, restart it. The replica catches up via partial sync if downtime is within WAL retention.
Point-in-Time Recovery
Section titled “Point-in-Time Recovery”Requires snapshot + WAL retention:
[snapshot]snapshot-interval-secs = 3600 # Hourly
[rocksdb]min-wal-retention-secs = 86400 # 24-hour WAL retentionRecovery replays WAL entries from the nearest snapshot up to the target sequence number. With hourly snapshots, maximum WAL replay is 1 hour.
Restore Procedure
Section titled “Restore Procedure”# 1. Stop serversystemctl stop frogdb
# 2. Replace data with backuprm -rf /var/lib/frogdb/data/*cp -r /path/to/backup/snapshot/* /var/lib/frogdb/data/chown -R frogdb:frogdb /var/lib/frogdb/data/
# 3. Restart (WAL replay happens automatically)systemctl start frogdb
# 4. Verifyredis-cli -p 6379 ping && redis-cli -p 6379 dbsizeDurability and Backup Interaction
Section titled “Durability and Backup Interaction”| Durability Mode | Backup Consistency |
|---|---|
async | Snapshot may be ahead of WAL on disk |
periodic | Snapshot + WAL within sync-interval-ms of actual state |
sync | Snapshot + WAL fully consistent |
For zero-loss backup, use sync durability mode with replica-based backup.