Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

可以将数据库实例还原到特定时间点,以创建新数据库实例。将数据库实例还原到某个时间点时,默认数据库安全组将应用于新数据库实例。如果需要将自定义数据库安全组应用于数据库实例,则在数据库实例可用之后,必须使用 AWS 管理控制台、AWS CLI modify-db-instance 命令或 Amazon RDS API ModifyDBInstance 操作显式应用它们。

RDS 每隔 5 分钟将数据库实例的事务日志上传到 Amazon S3 一次。要确定某个数据库实例的最近可还原时间,请使用 AWS CLI describe-db-instances 命令,并查看该数据库实例的 LatestRestorableTime 字段中返回的值。在 AWS 管理控制台中,此属性作为数据库实例的最近还原时间可见。您可在备份保留期内还原到任一时间点。

从某个时间点进行还原时,Amazon RDS 使用的某些数据库引擎还有一些特殊的注意事项。将 Oracle 数据库实例还原到某个时间点时,可指定不同的 Oracle 数据库引擎、许可模式和 DBName (SID) 供新数据库实例使用。将 SQL Server 数据库实例还原到某个时间点时,该实例中的每个数据库均还原到与实例中每个其他数据库相差 1 秒以内的时间点。对于实例内跨多个数据库的事务,还原时可能会发生不一致的情况。此外,对于 SQL Server 数据库实例,当前不支持 OFFLINEEMERGENCYSINGLE_USER 模式。将任何数据库设置成上述模式之一,会导致整个实例的最近可还原时间停滞不前。

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

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 将数据库实例还原到某个时间点。

AWS 管理控制台

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

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 Databases (数据库)

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

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

    启动数据库实例窗口随即显示。

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

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

  6. 对于数据库实例标识符,输入已还原数据库实例的名称,然后完成其他选项。

  7. 选择 Launch DB Instance

CLI

要将数据库实例还原到指定时间,请使用 AWS CLI 命令 restore-db-instance-to-point-in-time 创建新的数据库实例。

针对 Linux、OS X 或 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

对于 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
API

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

  • SourceDBInstanceIdentifier

  • TargetDBInstanceIdentifier

  • RestoreTime