Even though Scylla is a fault-tolerant system, it is recommended to regularly back up the data to external storage. Backup is a per-node procedure. Make sure to back up each node in your cluster. The backup includes two procedures. These are:
For cluster wide backup and restore, see Scylla Manager
Snapshots are taken using nodetool snapshot. First, the command flushes the MemTables from memory to SSTables on disk, and afterward, it creates a hard link for each SSTable in each keyspace. With time, SSTables are compacted, but the hard link keeps a copy of each file. This takes up an increasing amount of disk space. It is important to clear space by clean unnecessary snapshots.
$: cqlsh -e "DESC SCHEMA" > <schema_name.cql>
$: cqlsh -e "DESC SCHEMA" > db_schema.cql
$ nodetool snapshot <KEYSPACE_NAME>
$ nodetool snapshot mykeyspace
From one of the nodes, recreate the schema. Repeat these steps for each node in the cluster.
All incremental backups and commit logs from the time of the snapshot.
Make sure to delete unnecessary incremental backups. Scylla does not do this automatically.
/etc/scylla/scylla.yamlfile set the
incremental backupsparameters to
trueand restart the Scylla service. Snapshot are created under Scylla data directory