

# 将 RDS Custom for Oracle 实例还原到某个时间点
<a name="custom-backup.pitr"></a>

您可以将数据库实例还原到某个特定时间点 (PITR)，以创建新数据库实例。要支持 PITR，您的数据库实例必须将备份保留期设置为非零值。

RDS Custom for Oracle 数据库实例的最近可还原时间取决于多个因素，但通常为当前时间的 5 分钟内。要查看某个数据库实例的最近可还原时间，请使用 AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令，并查看该数据库实例的 `LatestRestorableTime` 字段中返回的值。要在 Amazon RDS 控制台中查看每个数据库实例的最近可还原时间，请选择**自动备份**。

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

有关 PITR 的一般信息，请参阅[将 Amazon RDS 的数据库实例还原到指定时间](USER_PIT.md)。

**Topics**
+ [RDS Custom for Oracle 的 PITR 注意事项](#custom-backup.pitr.oracle)

## RDS Custom for Oracle 的 PITR 注意事项
<a name="custom-backup.pitr.oracle"></a>

在 RDS Custom for Oracle 中，PITR 与 Amazon RDS 中的 PITR 有以下重要的区别：
+ 还原的数据库的名称与源数据库实例中的名称相同。您不能指定不同的名称。默认为 `ORCL`。
+ `AWSRDSCustomIamRolePolicy` 需要新的权限。有关更多信息，请参阅 [步骤 2：将访问策略添加到 AWSRDSCustomInstanceRoleForRdsCustomInstance 中](custom-setup-orcl.md#custom-setup-orcl.iam.add-policy)。
+ RDS Custom for Oracle 的所有数据库实例都必须将备份保留期设置为非零值。
+ 如果更改操作系统或数据库实例时区，PITR 可能无法正常工作。有关更改时区的信息，请参阅[Oracle 时区](custom-managing.timezone.md)。
+ 如果将自动化设置为 `ALL_PAUSED`，RDS Custom 会暂停上传存档的重做日志文件，包括在最近可还原时间（LRT）之前创建的日志。我们建议您短暂暂停自动化。

  为了进行说明，假设您的 LRT 为 10 分钟前。您暂停了自动化。暂停期间，RDS Custom 不上载存档的重做日志。如果数据库实例崩溃，则只能恢复到暂停时存在的 LRT 之前的一段时间。当您恢复自动化时，RDS Custom 会恢复上载日志。LRT 推进。将适用正常的 PITR 规则。
+ 在 RDS Custom 中，您可以手动指定 RDS Custom 在上载后将存档的重做日志删除之前将其保留的任意小时数。按如下方式指定小时数：

  1. 创建名为 `/opt/aws/rdscustomagent/config/redo_logs_custom_configuration.json` 的文本文件。

  1. 按以下格式添加 JSON 对象：`{"archivedLogRetentionHours" : "num_of_hours"}`。该数字必须是一个介于 1–840 之间的整数。
+ 假设您将非 CDB 作为 PDB 插入容器数据库（CDB），然后尝试 PITR。仅当您先前备份了 PDB 时，该操作才会成功。创建或修改 PDB 后，我们建议您始终对其进行备份。
+ 我们建议您不要自定义数据库初始化参数。例如，修改以下参数会影响 PITR：
  + `CONTROL_FILE_RECORD_KEEP_TIME` 影响上传和删除日志的规则。
  + `LOG_ARCHIVE_DEST_n` 不支持多个目的地。
  + `ARCHIVE_LAG_TARGET` 影响最近可还原时间。`ARCHIVE_LAG_TARGET` 设置为 `300`，因为恢复点目标（RPO）为 5 分钟。为了实现这一目标，RDS 每 5 分钟切换一次在线重做日志，并将其存储在 Amazon S3 存储桶中。如果日志切换的频率导致 RDS Custom for Oracle 数据库出现性能问题，则可以将数据库实例和存储扩展到具有更高 IOPS 和吞吐量的数据库实例和存储。如果恢复计划需要，可以将 `ARCHIVE_LAG_TARGET` 初始化参数的设置调整为 60–7200 之间的值。
+ 如果您自定义数据库初始化参数，我们强烈建议您只自定义以下内容：
  + `COMPATIBLE` 
  + `MAX_STRING_SIZE`
  + `DB_FILES` 
  + `UNDO_TABLESPACE` 
  + `ENABLE_PLUGGABLE_DATABASE` 
  + `CONTROL_FILES` 
  + `AUDIT_TRAIL` 
  + `AUDIT_TRAIL_DEST` 

  对于所有其他初始化参数，RDS Custom 将还原原定设置值。如果修改不在前面列表中的参数，可能会对 PITR 产生不利影响，并导致不可预测的结果。例如，`CONTROL_FILE_RECORD_KEEP_TIME` 影响上传和删除日志的规则。

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

## 控制台
<a name="custom-backup.pitr2.CON"></a>

**要将 RDS Custom 数据库实例还原至指定时间**

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

1. 在导航窗格中，选择 **Automated backups**（自动备份）。

1. 选择要还原的 RDS Custom 数据库实例。

1. 对于 **Actions (操作)**，选择 **Restore to point in time (还原到时间点)**。

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

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

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

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

1. 对于 **DB instance identifier**（数据库实例标识符），请输入目标还原后的 RDS Custom 数据库实例的名称。名称必须唯一。

1. 根据需要选择其他选项，例如数据库实例类。

1. 选择**还原到时间点**。

## AWS CLI
<a name="custom-backup.pitr2.CLI"></a>

通过使用 [ restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) AWS CLI 命令创建新的 RDS Custom 数据库实例，将数据库实例还原到指定时间。

使用以下选项之一指定要从中恢复的备份：
+ `--source-db-instance-identifier mysourcedbinstance`
+ `--source-dbi-resource-id dbinstanceresourceID`
+ `--source-db-instance-automated-backups-arn backupARN`

`custom-iam-instance-profile` 选项是必需的。

截至指定的时间，以下示例会将 `my-custom-db-instance` 还原到名为 `my-restored-custom-db-instance` 的新数据库实例。

**Example**  
对于 Linux、macOS 或 Unix：  

```
1. aws rds restore-db-instance-to-point-in-time \
2.     --source-db-instance-identifier my-custom-db-instance\
3.     --target-db-instance-identifier my-restored-custom-db-instance \
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
5.     --restore-time 2022-10-14T23:45:00.000Z
```
对于 Windows：  

```
1. aws rds restore-db-instance-to-point-in-time ^
2.     --source-db-instance-identifier my-custom-db-instance ^
3.     --target-db-instance-identifier my-restored-custom-db-instance ^
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
5.     --restore-time 2022-10-14T23:45:00.000Z
```