Managing backups
Managing DSE Backup and Restore Service backups
Once you've got the DSE Backup and Restore Service enabled, a user assigned the backup role, and a backup configuration created, you're ready to work with actual backups. Generally you'll deal with backups that have been automatically created using the scheduling criteria you've established in a backup configuration. However, you can also run a manual backup.
- Running a manual backup
- Listing existing backups
- Cancelling a manual backup in progress
- Culling stale backups falling outside your established retention period
Run a manual backup
To run a manual backup:
- Start cqlsh and list your existing backup
configurations:
LIST BACKUP CONFIGURATIONS; name | target_keyspace | stores | frequency | enabled | next_execution_time ---------------+-----------------+---------------------+-------------------+---------+--------------------- config_name | keyspace| ['backup_store'] | cron_expression | False | null
Make note of the config_name.
If no backup configurations are listed, see: Creating and managing backup configurations.
- Run a manual backup substituting config_name for your backup
configuration name:
RUN BACKUP config_name; backup_id ----------------------------------------------------------------------- config_name-UUID
Note: You can use the backup_id-UUID to cancel long running manual backups if required.
Check on the status of running backups
For large datasets a backup may take some time to finish.
- List the existing
backups:
LIST BACKUPS FROM KEYSPACE keyspace; id | backup_time | store | keyspace | tables | nodes | schema_versions | status | details -----------------------+-------------+---------------+------------+---------------- ----------+-------------+-----------------+----------+------------------ config_name-UUID | timestamp | store_name | keyspace | {'table1', 'table2'} | {node_id} | schema_status | status | status_details
- Note the config_name-UUID and then run the
following
query:
SELECT * FROM system_distributed.backup_task_state WHERE backup_id = 'config_name-UUID' ALLOW FILTERING; backup_config_name | backup_id | node_id | retry_count | error_message | error_stacktrace | metrics | state | transitioned_at | type -------------------+-------------------+---------+-------------+---------------+----------------------------------+----------+------------------+-------------- config_name | config_name-UUID | node_id | N | error | stacktrace | metrics_map | FINISHED | timestamp | backup_type (1 rows)
Completed backups will have the state
FINISHED
.
List existing backups
To list existing backups:
- Start cqlsh and list your existing backup
configurations:
LIST BACKUP CONFIGURATIONS; name | target_keyspace | stores | frequency | enabled | next_execution_time -------------+-----------------+------------------+-----------------+---------+--------------------- config_name | keyspace | ['backup_store'] | cron_expression | False | null
Make note of the target keyspace for the backup configuration.
- List the backups for the target keyspace to verify that the backup has completed
successfully:
LIST BACKUPS FROM KEYSPACE keyspace; id | backup_time | store | keyspace | tables | nodes | schema_versions | status | details -------------------+-------------+------------+----------+----------------------+-----------+-----------------+--------+------------------ config_name-UUID | timestamp | store_name | keyspace | {'table1', 'table2'} | {node_id} | schema_status | status | status_details
The following table describes the information returned:
Table 1. Backup details Column name Description Type id Backup ID. Text backup_time The time at which the backup started. Timestamp store The store where the backup is located. Text keyspace Keyspace name. Text tables Names of the tables in the backup. Text set nodes Names of the nodes that performed the backup. UUID set status The status of the backup: FULL_BACKUP
: all nodes successfully performed the backup.QUORUM_BACKUP
: a quorum of nodes, according the keyspace replication factor, sucessfully performed the backup.INCOMPLETE_BACKUP
: too many nodes failed the backup. An incomplete backup cannot be restored.CLEANING
: the backup is being cleaned. See CLEAN BACKUPS.
Text schema_versions Status of the schema agreement between nodes: IN AGREEMENT
: the schema for all nodes is in agreement.MISMATCH
: there is a schema mismatch within the nodes. The resulting backup cannot be restored.
Text details Information on the backup status. Text
Cancel a backup in progess
To cancel a backup in progress:
- Start cqlsh and list your existing backup
configurations:
LIST BACKUP CONFIGURATIONS; name | target_keyspace | stores | frequency | enabled | next_execution_time -------------+-----------------+------------------+-----------------+---------+--------------------- config_name | keyspace | ['backup_store'] | cron_expression | False | null
Make note of the target keyspace for the backup configuration.
- Note the config_name-UUID and then run the following
query:
SELECT * FROM system_distributed.backup_task_state WHERE backup_id = 'config_name-UUID' ALLOW FILTERING; backup_config_name | backup_id | node_id | retry_count | error_message | error_stacktrace | metrics | state | transitioned_at | type -------------------+------------------+---------+-------------+---------------+------------------+-------------+----------+-----------------+------------ config_name | config_name-UUID | node_id | N | error | stacktrace | metrics_map | FINISHED | timestamp | backup_type (1 rows)
Backups in progress have the status
STARTED
orUPLOADING
. - Cancel the running
backup:
CANCEL config_name-UUID;
Clean up stale backups
Although a scheduled task runs every two hours to drop backups that are outside of backup store's configured retention policy for a backup store (see Customize backup retention policy), you can manually run a backup cleaning if you wish. For information on manually cleaning backups, see CLEAN BACKUPS.