将数据库实例还原到指定时间 - Amazon Relational Database Service

将数据库实例还原到指定时间

可以将数据库实例还原到特定时间点,创建一个新的数据库实例而无需修改源数据库实例。

将数据库实例还原到某个时间点时,您可以选择默认的 Virtual Private Cloud (VPC) 安全组,也可以将自定义 VPC 安全组应用于数据库实例。

还原的数据库实例自动与默认数据库参数和选项组关联。但是,您可以通过在还原期间指定自定义参数组和选项组来应用它们。

如果源数据库实例具有资源标签,则 RDS 会向还原的数据库实例添加最新标签。

RDS 每隔 5 分钟将数据库实例的事务日志上传到 Amazon S3。要查看某个数据库实例的最近可还原时间,请使用 AWS CLI describe-db-instances 命令,并查看该数据库实例的 LatestRestorableTime 字段中返回的值。要在 Amazon RDS 控制台中查看每个数据库实例的最近可还原时间,请选择自动备份

您可以还原至备份保留期内的任何时间点。要查看每个数据库实例的最早可还原时间,请在 Amazon RDS 控制台中选择自动备份

自动备份
注意

如果使用预置 IOPS 存储作为源数据库实例,我们建议您恢复到相同或相似的数据库实例大小和 IOPS。例如,如果您选择具有不兼容 IOPS 值的数据库实例大小,则可能会出现错误。

有关使用 RDS 扩展支持版本还原数据库实例的信息,请参阅使用 Amazon RDS 扩展支持还原数据库实例或多可用区集群

从某个时间点进行还原时,Amazon RDS 使用的某些数据库引擎还有一些特殊的注意事项:

  • 如果您对 RDS for Db2 数据库实例使用密码身份验证,则日志中不会捕获用户管理操作(包括 rdsadmin.add_user)。这些操作需要完整快照备份。

    使用 BYOL 模型时,您的 RDS for Db2 数据库实例必须与包含您的 IBM Site ID 和 IBM Customer ID 的自定义参数组相关联。否则,尝试将数据库实例还原到特定时间点将失败。有关更多信息,请参阅自带许可rdsadmin.restore_database

  • 将 Oracle 数据库实例还原到某个时间点时,可指定不同的 Oracle 数据库引擎、许可模式和 DBName (SID) 供新数据库实例使用。

  • 将 Microsoft SQL Server 数据库实例还原到某个时间点时,该实例中的每个数据库均还原到与实例中每个其他数据库相差 1 秒以内的时间点。对于实例内跨多个数据库的事务,还原时可能会发生不一致的情况。

  • 对于 SQL Server 数据库实例,OFFLINEEMERGENCYSINGLE_USER 模式不受支持。将任何数据库设置成上述模式之一,会导致整个实例的最近可还原时间停滞不前。

  • 某些操作 (如更改 SQL Server 数据库的恢复模式) 可中断用于时间点恢复的日志序列。在某些情况下,Amazon RDS 可以检测到此问题,最近的可恢复时间将无法向前推进。在其他情况下,例如在 SQL Server 数据库使用 BULK_LOGGED 恢复模型时,无法检测到日志序列中断。如果日志序列中断,则可能无法将 SQL Server 数据库实例还原到某个时间点。出于这些原因,Amazon RDS 不支持更改 SQL Server 数据库的恢复模式。

您也可以使用 AWS Backup 管理 Amazon RDS 数据库实例的备份。如果您的数据库实例与 AWS Backup 中的备份计划关联,则该备份计划用于时间点恢复。使用 AWS Backup 创建的备份的名称以 awsbackup:AWS-Backup-job-number 结尾。有关 AWS Backup 的更多信息,请参阅 AWS Backup 开发人员指南

注意

本主题中的信息适用于 Amazon RDS。有关还原 Amazon Aurora 数据库集群的更多信息,请参阅将数据库集群还原到指定时间

您可以使用 AWS Management Console、AWS CLI 或 RDS API 将数据库实例还原到某个时间点。

注意

还原数据库实例时,无法减少存储量。当您增加分配的存储空间时,必须至少增加 10%。如果您尝试将该值增加不到 10%,则会得到错误。您无法在还原 RDS for SQL Server 数据库实例时增加分配的存储。

将数据库实例还原至指定时间
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Automated backups(自动备份)。

    自动备份便会显示在 Current Region(当前区域)选项卡上。

  3. 选择要还原的数据库实例。

  4. 对于 Actions (操作),选择 Restore to point in time (还原到时间点)

    此时会显示还原到时间点窗口。

  5. 选择最近可还原时间以还原到可能的最近时间,或选择自定义来选择时间。

    如果您选择 Custom(自定义),请输入要将实例集群还原到的日期和时间。

    注意

    时间以您的本地时区显示,表示为协调世界时 (UTC) 的偏移量。例如,UTC-5 是东部标准时间/中部夏令时。

  6. 对于数据库实例标识符,请输入目标还原后的数据库实例的名称。名称必须唯一。

  7. 根据需要选择其他选项,例如数据库实例类、存储,以及是否要使用存储自动扩展。

    有关每项设置的信息,请参阅 数据库实例的设置

  8. 选择还原到时间点

要将数据库实例还原到指定的时间,请使用 AWS CLI 命令 restore-db-instance-to-point-in-time 创建新的数据库实例。此示例还设置了分配的存储大小并启用存储自动扩缩。

此操作支持资源标记。使用 --tags 选项时,将忽略源数据库实例标签,并使用提供的标签。否则,将使用源实例的最新标签。

您可以指定其他设置。有关每项设置的信息,请参阅 数据库实例的设置

对于 Linux、macOS 或 Unix:

aws rds restore-db-instance-to-point-in-time \ --source-db-instance-identifier mysourcedbinstance \ --target-db-instance-identifier mytargetdbinstance \ --restore-time 2017-10-14T23:45:00.000Z \ --allocated-storage 100 \ --max-allocated-storage 1000

对于 Windows:

aws rds restore-db-instance-to-point-in-time ^ --source-db-instance-identifier mysourcedbinstance ^ --target-db-instance-identifier mytargetdbinstance ^ --restore-time 2017-10-14T23:45:00.000Z ^ --allocated-storage 100 ^ --max-allocated-storage 1000

要将数据库实例还原到指定时间,请结合以下参数调用 Amazon RDS API RestoreDBInstanceToPointInTime 操作:

  • SourceDBInstanceIdentifier

  • TargetDBInstanceIdentifier

  • RestoreTime