

# 从 Amazon S3 下载存档的重做日志
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs"></a>

您可以使用 `rdsadmin.rdsadmin_archive_log_download` 软件包在数据库实例上下载存档的重做日志。如果存档的重做日志不再存在于数据库实例上，您可能需要从 Amazon S3 重新下载它们。然后，您可以挖掘日志或使用日志恢复或复制数据库。

**注意**  
您无法在只读副本实例上下载存档的重做日志。

## 下载归档的重做日志：基本步骤
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.basic-process"></a>

归档的重做日志的可用性取决于以下保留策略：
+ 备份保留策略 – Amazon S3 提供了此策略内的日志。此策略之外的日志将被删除。
+ 归档的日志保留策略 – 此策略内的日志在数据库实例上可用。此策略之外的日志将被删除。

如果日志不在您的实例上，但受到备份保留期的保护，请使用 `rdsadmin.rdsadmin_archive_log_download` 以重新下载。RDS for Oracle 会将日志保存到数据库实例的 `/rdsdbdata/log/arch` 目录。

**从 Amazon S3 下载归档的重做日志**

1. 配置您的保留期，以确保您下载的归档重做日志在您需要的时间内得到保留。请确保 `COMMIT` 您的更改。

   RDS 根据归档日志保留策略保留您下载的日志，从下载日志之时开始。要了解如何设置保留策略，请参阅[保留存档重做日志](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)。

1. 最多等待 5 分钟，使归档的日志保留策略更改生效。

1. 使用 `rdsadmin.rdsadmin_archive_log_download` 从 Amazon S3 下载归档的重做日志。

   有关更多信息，请参阅“[下载单个归档的重做日志](#Appendix.Oracle.CommonDBATasks.download-redo-logs.single-log)”和“[下载一系列归档的重做日志](#Appendix.Oracle.CommonDBATasks.download-redo-logs.series)”。
**注意**  
RDS 在下载之前会自动检查可用的存储空间。如果请求的日志占用大量空间，您将收到警报。

1. 确认日志已成功从 Amazon S3 下载。

   您可以查看 bdump 文件中的下载任务的状态。bdump 文件的路径名称为 `/rdsdbdata/log/trace/dbtask-task-id.log`。在前面的下载步骤中，您可以运行 `SELECT` 语句，该语句可返回 `VARCHAR2` 数据类型中的任务 ID。有关更多信息，请参阅[监控文件传输的状态](oracle-s3-integration.using.md#oracle-s3-integration.using.task-status)中的类似示例。

## 下载单个归档的重做日志
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.single-log"></a>

要将单个归档的重做日志下载到 `/rdsdbdata/log/arch` 目录中，请使用 `rdsadmin.rdsadmin_archive_log_download.download_log_with_seqnum`。此过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `seqnum`  |  number  |  —  |  是  |  归档的重做日志的序列号。  | 

以下示例展示的是下载序列号为 20 的日志。

```
SELECT rdsadmin.rdsadmin_archive_log_download.download_log_with_seqnum(seqnum => 20) 
       AS TASK_ID 
FROM   DUAL;
```

## 下载一系列归档的重做日志
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.series"></a>

要将一系列归档的重做日志下载到 `/rdsdbdata/log/arch` 目录中，请使用 `download_logs_in_seqnum_range`。每个请求的下载限制为 300 个日志。`download_logs_in_seqnum_range` 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `start_seq`  |  number  |  —  |  是  |  系列的起始序列号。  | 
|  `end_seq`  |  number  |  —  |  是  |  系列的结束序列号。  | 

以下示例展示的是下载序列号为 50 至 100 的日志。

```
SELECT rdsadmin.rdsadmin_archive_log_download.download_logs_in_seqnum_range(start_seq => 50, end_seq => 100) 
       AS TASK_ID 
FROM   DUAL;
```