This page describes the support Cockroach Labs provides for restoring backups across major versions of CockroachDB. The sections outline the support for the most common use cases when restoring backups across versions:
Since CockroachDB considers the cluster version when running a backup, this page refers to versions in a "v22.2.x" format. For example, both v22.2.8 and v22.2.14 are considered as v22.2 clusters for backup purposes.
Because CockroachDB is designed with high fault tolerance, backups are primarily needed for disaster recovery. However, taking regular backups of your data is an operational best practice. When upgrading to a major release, we recommend taking a backup of your cluster. See how to upgrade to the latest version of CockroachDB.
Support for restoring backups into a newer version
Cockroach Labs supports restoring a backup taken on a cluster on a specific major version into a cluster that is on the same version or the next major version. Therefore, when upgrading your cluster from version N to N+1, if you took a backup on major version N, you can restore it to your cluster on either major version N or N+1. Restoring backups outside major version N or N+1 is not supported.
For example, backups taken on v22.1.x can be restored into v22.2.x. Backups taken on v22.2.x can be restored into v23.1.x. The following table outlines this support:
|Backup taken on version||Restorable into version|
When a cluster is in a mixed-version state during an upgrade, full cluster restores will fail. See the Upgrade documentation for the necessary steps to finalize your upgrade. For CockroachDB Cloud clusters, see the Upgrade Policy page.
Cockroach Labs does not support restoring backups from a higher version into a lower version.
Support for long-term backup archival
When you need to archive a backup for the long term, we recommend that you also archive the CockroachDB binary of the version that the backup was taken on.
For a true archival copy that is not dependent on CockroachDB at all, running a changefeed to export your data from CockroachDB and archiving the files would be a better approach instead of taking a backup. See Export Data with Changefeeds for more detail.