- The frequency of the backups to meet requirements.
- The retention of the backups to set how long Cockroach Labs retains the backups.
In addition to managed backups, you can take manual backups to your own storage bucket with self-managed backups. Refer to the page.
Managed backup settings
Configurable managed backup settings are available in all of CockroachDB on Advanced clusters.
Frequency
You can configure how frequently Cockroach Labs takes backups, which will determine the cluster’s . You can set backup frequency to one of the following options:- 5 minutes
- 10 minutes
- 15 minutes
- 30 minutes
- 1 hour (default)
- 4 hours
- 24 hours
Retention
You can set your retention duration once. After you have adjusted the retention, the duration will only apply to new backups. The available retention options are:- 2 days
- 7 days
- 30 days (default)
- 90 days
- 365 days
Considerations
- Every backup will be stored entirely in a single region, which is chosen at random from the list of cluster regions at the time of cluster creation. This region will be used indefinitely to store backups.
- You can perform a cross-cluster restore across clusters in the same organization. However, the target cluster must also be an Advanced cluster and be completely wiped of data.
- You cannot restore a backup of a multi-region database into a single-region database.
- For details on managed backups and enabling CMEK in Advanced clusters, refer to .
Required permissions to restore managed backups
To restore a managed backup successfully in CockroachDB Cloud, you must have the appropriate on both the source and destination clusters:- You must have either the or role on the destination cluster, or at the . Without one of these roles, the restore job will fail.
- You must also have either the or role on the source cluster (the cluster from which the backup was taken), or at the . If you do not have the required permissions on the source cluster, the restore will fail.
Organization-level permissions take precedence over cluster-specific permissions. If you have the appropriate role at the organization level, you are authorized to perform restore operations on all clusters within that organization.
Cloud Console
View backups
Click on Backup and Restore in the Data section of the left-side navigation to access the Backup Recovery page. The Backups tab displays a list of your full and incremental cluster backups. Use the calendar drop-down to view all backups taken on a certain date. For each backup, the following details display:- Data From: The date and time the backup was taken.
- Status: The backup’s status,
In ProgressorComplete. - Type: Whether the backup is a full or incremental backup.
- Expires In: The remaining number of days Cockroach Labs will retain the backup.
- Databases: The number of databases included in the backup.
- Restore: Restore a particular cluster backup, click Restore in the corresponding row.
Databases
To view the databases included in the backup, click the number in the Databases column on the Backups tab. For each database in the backup, the following details display:- The Name of the database.
- The number of Tables in the database. If a database does not contain tables, it will not display in the Databases view.
- Restore: To restore a database, click Restore in the corresponding row. To view the tables in the database, click the number in the Tables column.
Tables
To view the tables in a database, click the number in the Tables column on the Databases page for a particular backup. For each table in the database, the Name of the table displays. To restore a table, click Restore in the corresponding row.Modify backup settings
Following a change to the backup frequency or retention setting, the cluster will take a full backup immediately, which may impact CPU usage on the cluster. If you are disabling managed backups, the cluster will not take a backup following the change. Before modifying cluster backup settings, review details on backup settings for Standard and Advanced clusters. On the Backup and Restore page, click on Settings and the Backup Settings module will open. The Enable backups switch allows you to enable or disable backups. To modify the frequency of backups, click on the dropdown under Schedule backups every. This will display the option to select one of the following:- 5 minutes
- 10 minutes
- 15 minutes
- 30 minutes
- 1 hour (default)
- 4 hours
- 24 hours
- 2 days
- 7 days
- 30 days (default)
- 90 days
- 365 days
Incomplete Backups
To view any failed or pending backups, click the Incomplete Backups tab on the Backup and Restore page. For each incomplete backup, the following details display:- Started: The date and time the backup job began.
- Duration: The amount of time the backup job ran for.
- Status: The error code and message for failed backup jobs.
- Description: The SQL command corresponding to the failed or pending backup job.
Restore data
Users with the , , or roles can perform the following from the Console:Restore an Advanced cluster
Before a cluster can be restored from a managed backup, the destination cluster must be completely wiped of data. A cluster restore job fails if the destination cluster contains any databases/schemas/tables.
- Find the cluster backup on the Backups tab.
- Click Restore for the cluster you want to restore. The Restore cluster module displays with backup details.
- Select the cluster to restore to. You can restore to either the same cluster or a different Advanced cluster in the same organization. Incompatible versions cannot be selected. By default, the option shows the current cluster. The dropdown displays options to restore to a different cluster. Select the Skip localities check box if you want to skip checking localities of a cluster before a restore when there are mismatched cluster regions between the backup’s cluster and the destination cluster.
- Click Continue.
- Enter the name of the destination cluster.
- Once you have reviewed the restore details, click Restore. The Restore Jobs tab will show you the status of your restore and update when the restore job has been created successfully.
Restore a database
To restore a database:- On the Backups tab, find the cluster backup containing the database you want to restore, and click the number in the corresponding Databases column.
- In the Databases view, click Restore for the database you want to restore. The Restore database module displays with backup details.
-
In the Restore to fields:
- Select the name of the destination cluster.
- Type the name of the destination database.
Resolve any naming conflicts by using or on the existing database. If you enter a unique name in the Restore to field, a new database will be created.
-
Select any of the Dependency options to skip. You can:
- Skip missing foreign keys, which will remove missing constraints (i.e., when the referenced table is not in the backup or is not being restored) before restoring.
- Skip missing sequences, which will ignore dependencies (i.e., the
DEFAULTexpression that uses the sequence). - Skip missing views, which will skip restoring that cannot be restored because their dependencies are not being restored at the same time.
- Skip localities check, which will skip checking localities of a cluster before a restore when there are mismatched cluster regions between the backup’s cluster and the destination cluster.
- Click Continue.
- Once you have reviewed the restore details, click Restore. When the restore job has been created successfully, you will be taken to the Restore Jobs tab, which will show you the status of your restore.
Restore a table
To restore a table:- Find the cluster backup containing the table you want to restore, and click the number in the corresponding Databases column.
- In the Databases view, find the database containing the table you want to restore, and click the number in the corresponding Tables column. The Tables view displays.
- Click Restore for the table you want to restore. The Restore table module displays with backup details.
-
In the Restore to fields:
- Select the name of the destination cluster.
- Type the name of the destination database. (Before restoring, ensure that you do not have an existing table with the same name.)
If you enter the name of an existing database, the table will be restored into that existing database. To use the name of an existing database, first resolve any naming conflicts with existing tables by using or on the table. If you enter a unique name in the Restore to field, a new database will be created.
- Select any of the Dependency options to skip. You can:
- Skip missing foreign keys, which will remove missing constraints (i.e., when the referenced table is not in the backup or is not being restored) before restoring.
- Skip missing sequences, which will ignore dependencies (i.e., the
DEFAULTexpression that uses the sequence). - Skip missing views, which will skip restoring that cannot be restored because their dependencies are not being restored at the same time.
- Click Continue.
- Once you have reviewed the restore details, click Restore.
Restore Jobs
To view the status of your restore, click on the Restore Jobs tab from the cluster Backup and Restore page. For each restore job, the tab will display:- Source > Destination: The source cluster, database, or table to the destination cluster, database, or table.
- Restore type: Whether the job is a cluster, database, table restore.
- Backup taken on: The date the backup was originally taken.
- Status: The status of the restore job
Preparing,Running,Succeeded,Failed. - Restore start: The date the restore job was initiated.
- Restore end: The date the restore job ended (whether successful or unsuccessful).
- Job ID: The job ID of the restore job.
Cloud API
You can use the to view and modify managed backup settings, view managed backups, or restore clusters from a managed backup.The associated with the secret key must have the role.
Get information on backup settings
To retrieve information about a specific cluster, make aGET request to the /v1/clusters/{cluster_id}/backups-config endpoint.
- is the unique ID of the cluster. This ID is written in a UUID format similar to
f78b7feb-b6cf-4396-9d7f-494982d7d81eand is returned by a . You can also find the cluster ID in the Cloud Console, in the URL of the single cluster overview page:https://cockroachlabs.cloud/cluster/{your_cluster_id}/overview. - is your API key. Refer to for more details.
- shows whether managed backups are enabled or disabled.
- is how often the managed backup will run in minutes.
- is the number of days Cockroach Labs will retain the managed backup in storage.
Modify backup settings on a cluster
Following a change to the backup frequency or retention setting, the cluster will take a full backup immediately, which may impact CPU usage on the cluster. If you are disabling managed backups, the cluster will not take a backup following the change. Before modifying cluster backup settings, review details on backup settings for Standard and Advanced clusters. To configure the frequency and retention of managed backups, send aPUT request to the /v1/clusters/{cluster_id}/backups-config endpoint.
-
is the unique ID of the cluster. This ID is written in a UUID format similar to
f78b7feb-b6cf-4396-9d7f-494982d7d81eand is returned by a . You can also find the cluster ID in the Cloud Console, in the URL of the single cluster overview page:https://cockroachlabs.cloud/cluster/{your_cluster_id}/overview. -
controls whether managed backups are enabled or disabled. If you are disabling managed backups, you cannot set backup frequency or retention. Possible values are:
true,false. -
determines how often the managed backup will run in minutes. Possible values are:
5,10,15,30,60,240(4 hours),1440(24 hours). -
sets the number of days Cockroach Labs will retain the managed backup in storage. You can change
retention_daysfor the cluster once (whether in the Cloud API or Cloud Console). Possible values are:2,7,30,90,365. If has previously been modified (in the Cloud API or Cloud Console), you receive the message “cluster already has a retention policy set, open a support ticket to change it”. To modify the setting again, contact the . - is your API key. Refer to for more details.
View managed backups
To view a list of managed backups on a cluster with timestamps and their respective IDs, send aGET request to the /v1/clusters/{cluster_id}/backups endpoint:
Restore from a managed backup
You can use the/v1/clusters/{destination_cluster_id}/restores endpoint to restore the contents of a managed backup to a specified destination cluster.
On Advanced clusters, restore operations can be performed at the cluster, database, or table level into the same cluster or a different Advanced cluster in the same organization.
Restore a cluster
Before a cluster can be restored from a managed backup, the destination cluster must be completely wiped of data. A cluster restore operation fails if the destination cluster contains any databases/schemas/tables. To restore a cluster to a recent managed backup, send aPOST request to the /v1/clusters/{cluster_id}/restores endpoint of "type": "CLUSTER":
source_cluster_id. To restore a specific backup, include the backup_id field and specify a backup ID from the managed backups list:
source_cluster_id.
restore_opts object. For more information, see the .
If the request is successful, the client recieves a JSON response that describes the request operation:
Restore a database
To restore one or more databases from a cluster’s managed backup, send aPOST request to the /v1/clusters/{cluster_id}/restores endpoint of "type": "DATABASE". Specify the name of the databases in objects:
restore_opts.new_db_name with the new database name. You can only restore one database at a time when using this option.
backup_id field specifying a backup ID:
source_cluster_id. Both the source cluster and the destination cluster must use the Advanced plan.
restore_opts object. For more information, see the .
If the request is successful, the client recieves a response containing JSON describing the request operation:
Restore a table
To restore a one or more tables from a cluster’s managed backup, send aPOST request to the /v1/clusters/{cluster_id}/restores endpoint of "type": "TABLE". Specify the fully qualified name of the source tables in objects:
restore_opts.into_db with the desired database name. The following example restores the tpcc.public.warehouse table from the most recent managed backup into tpcc2.public.warehouse on the cluster:
backup_id field specifying a backup ID:
source_cluster_id. Both the source cluster and the destination cluster must use the Advanced plan.
restore_opts object. For more information, see the .
If the request is successful, the client recieves a response containing JSON describing the request operation:
Get status of a restore job
To view the status of a restore job using the cloud API, send aGET request to the /v1/clusters/{cluster_id}/restores/{restore_id} endpoint where restore_id is the id from the JSON response:
CockroachDB Cloud Terraform provider
You can use the to specify managed backup settings in Advanced clusters. In yourmain.tf Terraform configuration file, use the backup_config attribute on the cockroach_cluster resource to modify the settings of managed backups. For example:
backup_config attribute:
enabledcontrols whether managed backups are enabled or disabled. If you modify theretention_dayssetting even when managed backups are disabled, this will use the one possible change forretention_days. Possible values for theenabledsetting are:trueorfalse.frequency_minutesdetermines how often the managed backup will run in minutes. Possible values are:5,10,15,30,60,240(4 hours),1440(24 hours).retention_dayssets the number of days Cockroach Labs will retain the managed backup in storage. You can changeretention_daysfor the cluster once (whether in Terraform, the Cloud API, or the Cloud Console). Possible values are:2,7,30,90,365. Note that:-
If the initial value of the
retention_daysattribute is the default value30, you’ll be able to modify the backup retention setting once more. -
If the initial value is not the default, you will not be able to modify
retention_daysagain. You can refrain from includingretention_daysin the Terraform configuration and instead manage the retention in the Cloud Console. To modify the setting again, contact the . For more details on modifyingretention_days, refer to the Updating Backup Retention documentation in the Terraform provider for CockroachDB Cloud Repository.
-
If the initial value of the

