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

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

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

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

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

注意

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

从某个时间点进行还原时,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 将数据库实例还原到某个时间点。

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

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

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

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

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

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

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

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

    注意

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

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

  7. 根据需要选择其他选项。

  8. 选择 Launch DB Instance

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

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

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

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

  • SourceDBInstanceIdentifier

  • TargetDBInstanceIdentifier

  • RestoreTime