Restoring a DB cluster to a specified time - Amazon Aurora

Restoring a DB cluster to a specified time

You can restore a DB cluster to a specific point in time, creating a new DB cluster.

When you restore a DB cluster to a point in time, you can choose the default virtual private cloud (VPC) security group. Or you can apply a custom VPC security group to your DB cluster.

Restored DB clusters are automatically associated with the default DB cluster and DB parameter groups. However, you can apply custom parameter groups by specifying them during a restore.

Amazon Aurora uploads log records for DB clusters to Amazon S3 continuously. To see the latest restorable time for a DB cluster, use the AWS CLI describe-db-clusters command and look at the value returned in the LatestRestorableTime field for the DB cluster.

You can restore to any point in time within your backup retention period. To see the earliest restorable time for a DB cluster, use the AWS CLI describe-db-clusters command and look at the value returned in the EarliestRestorableTime field for the DB cluster.

The backup retention period of the restored DB cluster is the same as that of the source DB cluster.

Note

Information in this topic applies to Amazon Aurora. For information on restoring an Amazon RDS DB instance, see Restoring a DB instance to a specified time.

For more information about backing up and restoring an Aurora DB cluster, see Overview of backing up and restoring an Aurora DB cluster.

For Aurora MySQL, you can restore a provisioned DB cluster to an Aurora Serverless DB cluster. For more information, see Restoring an Aurora Serverless v1 DB cluster.

You can also use AWS Backup to manage backups of Amazon Aurora DB clusters. If your DB cluster is associated with a backup plan in AWS Backup, that backup plan is used for point-in-time recovery. For information, see Restoring a DB cluster to a specified time using AWS Backup.

For information about restoring an Aurora DB cluster or a global cluster with an RDS Extended Support version, see Restoring an Aurora DB cluster or a global cluster with Amazon RDS Extended Support.

You can restore a DB cluster to a point in time using the AWS Management Console, the AWS CLI, or the RDS API.

To restore a DB cluster to a specified time
  1. Sign in to the AWS Management Console and open the Amazon RDS console at https://console.aws.amazon.com/rds/.

  2. In the navigation pane, choose Automated backups.

    The automated backups are displayed on the Current Region tab.

    
                            DB cluster automated backups
  3. Choose the DB cluster that you want to restore.

  4. For Actions, choose Restore to point in time.

    The Restore to point in time window appears.

  5. Choose Latest restorable time to restore to the latest possible time, or choose Custom to choose a time.

    If you chose Custom, enter the date and time to which you want to restore the cluster.

    Note

    Times are shown in your local time zone, which is indicated by an offset from Coordinated Universal Time (UTC). For example, UTC-5 is Eastern Standard Time/Central Daylight Time.

  6. For DB cluster identifier, enter the name of the target restored DB cluster. The name must be unique.

  7. Choose other options as needed, such as the DB instance class and DB cluster storage configuration.

    For information about each setting, see Settings for Aurora DB clusters.

  8. Choose Restore to point in time.

To restore a DB cluster to a specified time, use the AWS CLI command restore-db-cluster-to-point-in-time to create a new DB cluster.

You can specify other settings. For information about each setting, see Settings for Aurora DB clusters.

Resource tagging is supported for this operation. When you use the --tags option, the source DB cluster tags are ignored and the provided ones are used. Otherwise, the latest tags from the source cluster are used.

For Linux, macOS, or Unix:

aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier mysourcedbcluster \ --db-cluster-identifier mytargetdbcluster \ --restore-to-time 2017-10-14T23:45:00.000Z

For Windows:

aws rds restore-db-cluster-to-point-in-time ^ --source-db-cluster-identifier mysourcedbcluster ^ --db-cluster-identifier mytargetdbcluster ^ --restore-to-time 2017-10-14T23:45:00.000Z
Important

If you use the console to restore a DB cluster to a specified time, then Amazon RDS automatically creates the primary instance (writer) for your DB cluster. If you use the AWS CLI to restore a DB cluster to a specified time, you must explicitly create the primary instance for your DB cluster. The primary instance is the first instance that is created in a DB cluster.

To create the primary instance for your DB cluster, call the create-db-instance AWS CLI command. Include the name of the DB cluster as the --db-cluster-identifier option value.

To restore a DB cluster to a specified time, call the Amazon RDS API RestoreDBClusterToPointInTime operation with the following parameters:

  • SourceDBClusterIdentifier

  • DBClusterIdentifier

  • RestoreToTime

Important

If you use the console to restore a DB cluster to a specified time, then Amazon RDS automatically creates the primary instance (writer) for your DB cluster. If you use the RDS API to restore a DB cluster to a specified time, make sure to explicitly create the primary instance for your DB cluster. The primary instance is the first instance that is created in a DB cluster.

To create the primary instance for your DB cluster, call the RDS API operation CreateDBInstance. Include the name of the DB cluster as the DBClusterIdentifier parameter value.

Restoring a DB cluster to a specified time from a retained automated backup

You can restore a DB cluster from a retained automated backup after you delete the source DB cluster, if the backup is within the retention period of the source cluster. The process is similar to restoring a DB cluster from an automated backup.

Note

You can't restore an Aurora Serverless v1 DB cluster using this procedure, because automated backups for Aurora Serverless v1 clusters aren't retained.

To restore a DB cluster to a specified time
  1. Sign in to the AWS Management Console and open the Amazon RDS console at https://console.aws.amazon.com/rds/.

  2. In the navigation pane, choose Automated backups.

  3. Choose the Retained tab.

    
                                Retained automated backups
  4. Choose the DB cluster that you want to restore.

  5. For Actions, choose Restore to point in time.

    The Restore to point in time window appears.

  6. Choose Latest restorable time to restore to the latest possible time, or choose Custom to choose a time.

    If you chose Custom, enter the date and time to which you want to restore the cluster.

    Note

    Times are shown in your local time zone, which is indicated by an offset from Coordinated Universal Time (UTC). For example, UTC-5 is Eastern Standard Time/Central Daylight Time.

  7. For DB cluster identifier, enter the name of the target restored DB cluster. The name must be unique.

  8. Choose other options as needed, such as DB instance class.

    For information about each setting, see Settings for Aurora DB clusters.

  9. Choose Restore to point in time.

To restore a DB cluster to a specified time, use the AWS CLI command restore-db-cluster-to-point-in-time to create a new DB cluster.

You can specify other settings. For information about each setting, see Settings for Aurora DB clusters.

Resource tagging is supported for this operation. When you use the --tags option, the source DB cluster tags are ignored and the provided ones are used. Otherwise, the latest tags from the source cluster are used.

For Linux, macOS, or Unix:

aws rds restore-db-cluster-to-point-in-time \ --source-db-cluster-resource-id cluster-123ABCEXAMPLE \ --db-cluster-identifier mytargetdbcluster \ --restore-to-time 2017-10-14T23:45:00.000Z

For Windows:

aws rds restore-db-cluster-to-point-in-time ^ --source-db-cluster-resource-id cluster-123ABCEXAMPLE ^ --db-cluster-identifier mytargetdbcluster ^ --restore-to-time 2017-10-14T23:45:00.000Z
Important

If you use the console to restore a DB cluster to a specified time, then Amazon RDS automatically creates the primary instance (writer) for your DB cluster. If you use the AWS CLI to restore a DB cluster to a specified time, you must explicitly create the primary instance for your DB cluster. The primary instance is the first instance that is created in a DB cluster.

To create the primary instance for your DB cluster, call the create-db-instance AWS CLI command. Include the name of the DB cluster as the --db-cluster-identifier option value.

To restore a DB cluster to a specified time, call the Amazon RDS API RestoreDBClusterToPointInTime operation with the following parameters:

  • SourceDbClusterResourceId

  • DBClusterIdentifier

  • RestoreToTime

Important

If you use the console to restore a DB cluster to a specified time, then Amazon RDS automatically creates the primary instance (writer) for your DB cluster. If you use the RDS API to restore a DB cluster to a specified time, make sure to explicitly create the primary instance for your DB cluster. The primary instance is the first instance that is created in a DB cluster.

To create the primary instance for your DB cluster, call the RDS API operation CreateDBInstance. Include the name of the DB cluster as the DBClusterIdentifier parameter value.

Restoring a DB cluster to a specified time using AWS Backup

You can use AWS Backup to manage your automated backups, and then to restore them to a specified time. To do this, you create a backup plan in AWS Backup and assign your DB cluster as a resource. Then you enable continuous backups for PITR in the backup rule. For more information on backup plans and backup rules, see the AWS Backup Developer Guide.

Enabling continuous backups in AWS Backup

You enable continuous backups in backup rules.

To enable continuous backups for PITR
  1. Sign in to the AWS Management Console, and open the AWS Backup console at https://console.aws.amazon.com/backup.

  2. In the navigation pane, choose Backup plans.

  3. Under Backup plan name, select the backup plan that you use to back up your DB cluster.

  4. Under the Backup rules section, choose Add backup rule.

    The Add backup rule page displays.

  5. Select the Enable continuous backups for point-in-time recovery (PITR) check box.

    
                            Enable continuous backups for point-in-time recovery (PITR).
  6. Choose other settings as needed, then choose Add backup rule.

Restoring from a continuous backup in AWS Backup

You restore to a specified time from a backup vault.

You can use the AWS Management Console to restore a DB cluster to a specified time.

To restore from a continuous backup in AWS Backup
  1. Sign in to the AWS Management Console, and open the AWS Backup console at https://console.aws.amazon.com/backup.

  2. In the navigation pane, choose Backup vaults.

  3. Choose the backup vault that contains your continuous backup, for example Default.

    The backup vault detail page displays.

  4. Under Recovery points, select the recovery point for the automated backup.

    It has a backup type of Continuous and a name with continuous:cluster-AWS-Backup-job-number.

  5. For Actions, choose Restore.

    The Restore backup page displays.

    
                                    Restore backup page for point-in-time recovery (PITR).
  6. For Restore to point in time, select Specify date and time to restore to a specific point in time.

  7. Choose other settings as needed for restoring the DB cluster, then choose Restore backup.

    The Jobs page displays, showing the Restore jobs pane. A message at the top of the page provides information about the restore job.

After the DB cluster is restored, you must add the primary (writer) DB instance to it. To create the primary instance for your DB cluster, call the create-db-instance AWS CLI command. Include the name of the DB cluster as the --db-cluster-identifier parameter value.

You use the start-restore-job AWS CLI command to restore the DB cluster to a specified time. The following parameters are required:

  • --recovery-point-arn – The Amazon Resource Name (ARN) for the recovery point from which to restore.

  • --resource-type – Use Aurora.

  • --iam-role-arn – The ARN for the IAM role that you use for AWS Backup operations.

  • --metadata – The metadata that you use to restore the DB cluster. The following parameters are required:

    • DBClusterIdentifier

    • Engine

    • RestoreToTime or UseLatestRestorableTime

The following example shows how to restore a DB cluster to a specified time.

aws backup start-restore-job \ --recovery-point-arn arn:aws:backup:eu-central-1:123456789012:recovery-point:continuous:cluster-itsreallyjustanexample1234567890-487278c2 \ --resource-type Aurora \ --iam-role-arn arn:aws:iam::123456789012:role/service-role/AWSBackupDefaultServiceRole \ --metadata '{"DBClusterIdentifier":"backup-pitr-test","Engine":"aurora-mysql","RestoreToTime":"2023-09-01T17:00:00.000Z"}'

The following example shows how to restore a DB cluster to the latest restorable time.

aws backup start-restore-job \ --recovery-point-arn arn:aws:backup:eu-central-1:123456789012:recovery-point:continuous:cluster-itsreallyjustanexample1234567890-487278c2 \ --resource-type Aurora \ --iam-role-arn arn:aws:iam::123456789012:role/service-role/AWSBackupDefaultServiceRole \ --metadata '{"DBClusterIdentifier":"backup-pitr-latest","Engine":"aurora-mysql","UseLatestRestorableTime":"true"}'

After the DB cluster is restored, you must add the primary (writer) DB instance to it. To create the primary instance for your DB cluster, call the create-db-instance AWS CLI command. Include the name of the DB cluster as the --db-cluster-identifier parameter value.