SNAPSHOT keyword
Prepare the database for a full backup or a filesystem (disk) snapshot.
Looking for a detailed guide backup/restore? Check out our Backup and Restore guide!
Syntax
QuestDB currently does not support creating snapshots on Windows.
If you are a Windows user and require backup functionality, please comment on this issue.
Snapshot process
Database snapshots may be used in combination with filesystem snapshots or together with file copying for a full data backup. Collecting a snapshot involves the following steps:
- Run
SNAPSHOT PREPARE
statement to acquire reader locks for all database tables, create table metadata file copies in thesnapshot
directory, and flush the committed data to disk. - Start a filesystem snapshot or copy the root directory to the backup location on the disk. learn how to create a filesystem snapshot on the most common cloud providers.
- Run
SNAPSHOT COMPLETE
statement to release the reader locks and delete the metadata file copies.
Snapshot recovery
In case of a full backup, you should also delete the old root directory and copy the files from your backup to the same location or, alternatively, you can point the database at the new root directory.
When the database starts, it checks for the presence of a file named _restore
in the root directory. If the file is present, the database runs a snapshot
recovery procedure restoring the metadata files from the snapshot.
When this happens, you should see the following in the server logs:
2022-03-07T08:24:12.348004Z I i.q.g.DatabaseSnapshotAgent starting snapshot recovery [trigger=file]
[...]
2022-03-07T08:24:12.349922Z I i.q.g.DatabaseSnapshotAgent snapshot recovery finished [metaFilesCount=1, txnFilesCount=1, cvFilesCount=1]
Snapshot recovery can be disabled using the cairo.snapshot.recovery.enabled
configuration key:
cairo.snapshot.recovery.enabled=false
Examples
SNAPSHOT PREPARE;
-- Start a filesystem snapshot.
SNAPSHOT COMPLETE;
SNAPSHOT PREPARE;
-- Copy the root directory:
-- $ cp -r /root/dir/path /backup/dir/path
SNAPSHOT COMPLETE;
Further reading
- Backup and Restore - Detailed guide on how to create backups and restore them.