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

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

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

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

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

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

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

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

自动备份
注意

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

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

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

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

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

    采用“通过 AWS Marketplace 获得 Db2 许可证”模式时,您需要对要使用的特定 IBM Db2 版本进行有效 AWS Marketplace 订阅。如果您还没有订阅,请在 AWS Marketplace 中为该 IBM Db2 版本订阅 Db2。有关更多信息,请参阅 通过 AWS Marketplace 获得 Db2 许可证

  • 将 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