Backup your Data¶
Even though Scylla is a fault-tolerant system, it is recommended to regularly backup the data to an external storage. Backup is a per node procedure. Make sure to backup each node in your cluster. Backup includes two procedures. These are:
For cluster wide backup and restore, see Scylla Manager
Full Backup - Snapshots¶
Snapshots are taken using nodetool snapshot. First, the command flushes the MemTables from memory to SSTables on disk and afterwards, 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