Skip to main content
Version: 24.07.01

Restore a data service

Restoring a backup involves transferring data from an object store to a target cluster.

note

PDS does not support backup/restore for the following data services:

  • Kafka
  • RabbitMQ
  • ZooKeeper

PDS allows you to restore a backup to:

  • the same target cluster where the backup was taken
  • a different target cluster
note

When performing cross-project restores, it is crucial to verify that the target project has all necessary infrastructure resources configured and associated correctly. Missing or misconfigured resources can lead to restore failures.

Prerequisites​

  • A valid and up-to-date backup of the source data service.
  • Ensure that the cloud credentials are created on the target cluster to accommodate the restored data.
  • PDS administrator privileges. For more information about the user privileges to perform the restore operation, see the RBAC topic.

Restore a backup to the same target cluster

To restore an existing backup to the same target cluster:

  1. In the data service details dashboard -> Backups tab -> select a deployed data service you wish to restore and select the Restore button. Alternatively, you can click on the vertical ellipsis menu icon and choose the Restore option.

  2. In the Restore Backup window, enter the deployment name for the deployment that will be created from the backup.

    note

    The restore operation will create a new deployment, without affecting the original deployment.

  3. In the Target Cluster and Namespace dropdowns, keep the same cluster and namespace to specify where the restoration will occur.

  4. (Optional) In the Namespace dropdown, select the namespace where the restoration will occur.

  5. Select Restore.

    Verify the data have been restored to the new deployment by copying the end points and using them in the Web application of your choice. You can get the endpoints in the Overview tab -> Connection section.

Restore a backup to a different target cluster​

Restoring a backup to a different target cluster involves transferring data to a different cluster where the backup was taken. This process is often used for disaster recovery, data migration, and so on.

note

Ensure that you create a valid destination target cluster before you perform this restore procedure.

To restore a backup to a different target cluster:

  1. Follow the first two steps in the Restore a backup to the same cluster section.

  2. In the Restore Backup window -> Target Cluster dropdown, select the new target cluster.

  3. In the Namespace dropdown, select the namespace of the source cluster.

    note

    The namespace should be present in the deployment target where you perform the restore operation. For example, if the backup was taken for a deployment, which was deployed in the PostgreSQL namespace, then the same namespace should be present in the other deployment target where restore is being performed.

  4. Select Restore.

  5. Verify the restored data.

info

For the successful restoration of a Transport Layer Security (TLS) enabled backup of a PostgreSQL data service to a different target cluster, the following requirements must be met in the target cluster:

  • Activate TLS support.
  • Ensure that the cluster issuer matches that of the source target cluster.

Restore a Couchbase data service backup to a new cluster

When restoring a backed up Couchbase data service to a new cluster, the indexes will be distributed in a round-robin fashion among the current indexer nodes. These indexes will be created but not built, requiring the administrator to manually build them. This is the expected behavior of the cbbackupmgr tool, designed to manage index rebuild time during the restore process.

To build the deferred indexes, you can use the following N1QL queries from the Couchbase UI:

To build a single index:

BUILD INDEX ON bucket_name(#primary) USING GSI;

To build all indexes in a keyspace:

BUILD INDEX ON keyspace_name ((
SELECT RAW name
FROM system:indexes
WHERE keyspace_id = 'keyspace_name'
AND scope_id = 'scope_name'
AND bucket_id = 'bucket_name'
AND state = 'deferred' ));
Was this page helpful?