Was this page helpful?
The sctool restore command allows you to run a restore of backed-up data (identified by its snapshot-tag) into a cluster. Restore and backups are scheduled in the same manner: you can start, stop, resume, and track task progress on demand.
Note
If you are using ScyllaDB Manager deployed by ScyllaDB Operator, see dedicated ScyllaDB Operator documentation.
Warning
Restore works only when ScyllaDB version of backed-up cluster is the same or older than ScyllaDB version of restore destination cluster.
Mixing ScyllaDB Enterprise and ScyllaDB Open Source versions could lead to unexpected results.
Restore task has to be one of two types:
restore tables - restores the content of the tables (rows)
restore schema - restores the ScyllaDB cluster schema
If both the schema and the content of the tables need to be restored, you must start with restoring the schema. Only after the schema is successfully restored can you proceed with restoring the content of the tables.
ScyllaDB Manager Restore command supports the following features:
Glob patterns to select keyspaces or tables to restore
Control over the restore speed and granularity
Dry run - Test restore before live execution
Progress tracking (sctool progress, Prometheus metrics, Scylla Monitoring Manager dashboard)
--details
flag, it also displays per host bandwidths.Restore speed can be also observed with Prometheus metrics:
scylla_manager_restore_remaining_bytes
scylla_manager_restore_downloaded_bytes
scylla_manager_restore_download_duration
scylla_manager_restore_streamed_bytes
scylla_manager_restore_stream_duration
Restore speed is controlled by many parameters (see sctool restore documentation for details):
--batch-size
--parallel
--transfers
--rate-limit
--unpin-agent-cpu
--allow-compaction
--batch-size
is 2
, but it should be changed to 0
when you want to maximize restore speed.The --unpin-agent-cpu
is disabled by default, but in case you observe small download
bandwidth, you could try to pause restore task, update it with --unpin-agent-cpu
,
and resume it.
It is advisable to manually make sure that the restore task does not interfere with backup or repair tasks.
Do not start backup or repair tasks when restore task is running.
If scheduled runs of backup or repair tasks can interfier with restore task, then disable them until restore is complete:
# check Next column to determine when next run of a task is scheduled
$ sctool tasks -a
# disable repair/backup tasks if needed
$ sctool repair update -c CLUSTER-ID SCHEDULED-REPAIR-TASK-ID --enabled=false
$ sctool backup update -c CLUSTER-ID SCHEDULED-BACKUP-TASK-ID --enabled=false
Was this page helpful?