ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Server
  • Cloud
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Download
ScyllaDB Docs Scylla Manager Restore

Restore¶

  • Restore types

  • Features

  • Restore speed observability

  • Restore speed control

  • Interference with backup and repair tasks

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 types¶

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.

Features¶

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)

  • Pausing and resuming at any point of the process

Restore speed observability¶

Restore speed can be checked with sctool progress command.
It displays average per shard download and load&stream bandwidths. When used with --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 control¶

Restore speed is controlled by many parameters (see sctool restore documentation for details):

  • --batch-size

  • --parallel

  • --transfers

  • --rate-limit

  • --unpin-agent-cpu

  • --allow-compaction

Most of those parameters have default values chosen for restoring as fast as possible.
You should need to change them only when you want to limit the impact that the restore has on a cluster serving traffic on not currently restored tables.
For backward compatibility reasons, the default value of --batch-size is 2, but it should be changed to 0 when you want to maximize restore speed.
Note that with bigger batch size comes lesser granularity. This means that pausing and resuming restore would need to perform more work.

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.

Interference with backup and repair tasks¶

The restore task will not start if backup or repair tasks are running in the cluster at that time, and vice versa, if a restore task is running, backup or repair tasks will not start. You will see an error in the output of the sctool tasks command if there is a conflict between tasks. Here is an example output of sctool progress -c ${cluster_name} {task_id} when there is an interference between tasks:

$  ./sctool.dev progress -c my-cluster backup/06cd5d90-6daa-4215-acd3-d19f6782b5b6
Run:            351378ee-ab05-11ef-aa2d-0242c0a8c802
Status:         ERROR (initialising)
Cause:          exclusive task (restore) is running: another task is running
Start time:     25 Nov 24 09:13:52 CET
End time:       25 Nov 24 09:13:52 CET
Duration:       0s
Progress:       -

Was this page helpful?

PREVIOUS
Specification
NEXT
Restore tables
  • Create an issue
  • Edit this page

On this page

  • Restore
    • Restore types
    • Features
    • Restore speed observability
    • Restore speed control
    • Interference with backup and repair tasks
Scylla Manager
  • 3.5
    • master
    • 3.5
    • 3.4
    • 3.3
  • Docker
  • Install ScyllaDB Manager
  • Install ScyllaDB Manager Agent
  • ScyllaDB Manager Upgrade
  • Compatibility Matrix
  • Add a Cluster
  • Backup
    • Setup Amazon S3
    • Setup S3 compatible storage
    • Setup Google Cloud Storage
    • Setup Azure Blob Storage
    • Examples
    • Specification
  • Restore
    • Restore tables
    • Restore schema for ScyllaDB 6.0/2024.2 or newer
    • Restore schema for ScyllaDB 5.4/2024.1 or older
    • Examples
  • Repair
    • Repair faster
    • Repair slower
    • Examples
  • Health Check
  • CLI sctool
    • Environment variables
    • Completion
    • Download files
    • Backup
    • Restore
    • Cluster
    • Info
    • Progress
    • Repair
    • Start
    • Status
    • Stop
    • Suspend & Resume
    • Tasks
    • Version
  • Configuration Files
    • Scylla Manager Config
    • Scylla Manager Agent Config
  • Swagger File
  • ScyllaDB Monitoring
  • Troubleshooting
  • Slack
Docs Tutorials University Contact Us About Us
© 2025, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 07 May 2025.
Powered by Sphinx 7.4.7 & ScyllaDB Theme 1.8.6