

# 执行 Oracle 数据库实例的常见日志相关任务
<a name="Appendix.Oracle.CommonDBATasks.Log"></a>

下文中介绍了如何在运行 Oracle 的 Amazon RDS 数据库实例上，执行与日志记录相关的特定常见 DBA 任务。为了提供托管服务体验，Amazon RDS 不允许通过 shell 访问数据库实例，而仅限访问某些需要高级权限的系统过程和表。

有关更多信息，请参阅“[Amazon RDS for Oracle 数据库日志文件](USER_LogAccess.Concepts.Oracle.md)”。

**Topics**
+ [设置强制日志记录](#Appendix.Oracle.CommonDBATasks.SettingForceLogging)
+ [设置补充日志记录](#Appendix.Oracle.CommonDBATasks.AddingSupplementalLogging)
+ [切换联机日志文件](#Appendix.Oracle.CommonDBATasks.SwitchingLogfiles)
+ [添加联机重做日志](#Appendix.Oracle.CommonDBATasks.RedoLogs)
+ [删除联机重做日志](#Appendix.Oracle.CommonDBATasks.DroppingRedoLogs)
+ [调整联机重做日志的大小](Appendix.Oracle.CommonDBATasks.ResizingRedoLogs.md)
+ [保留存档重做日志](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)
+ [访问在线和存档的重做日志](Appendix.Oracle.CommonDBATasks.Log.Download.md)
+ [从 Amazon S3 下载存档的重做日志](Appendix.Oracle.CommonDBATasks.download-redo-logs.md)

## 设置强制日志记录
<a name="Appendix.Oracle.CommonDBATasks.SettingForceLogging"></a>

在强制日志记录模式下，Oracle 记录对数据库进行的所有更改，但在临时表空间和临时段中进行的更改除外 (忽略 `NOLOGGING` 子句)。有关更多信息，请参阅 Oracle 文档中的[指定“强制日志记录”模式](https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11096)。

要设置强制日志记录，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.force_logging`。`force_logging` 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 是 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_enable`  |  布尔值  |  true  |  否  |  设置为 `true`，数据库为强制日志记录模式；设置为 `false` 则取消数据库的强制日志记录模式。  | 

以下示例将数据库置于强制日志记录模式下。

```
EXEC rdsadmin.rdsadmin_util.force_logging(p_enable => true);
```

## 设置补充日志记录
<a name="Appendix.Oracle.CommonDBATasks.AddingSupplementalLogging"></a>

如果启用补充日志记录，则 LogMiner 将具有支持链接行和集群表的必要信息。有关更多信息，请参阅 Oracle 文档中的[补充日志记录](https://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm#SUTIL1582)。

Oracle 数据库在默认情况下不启用补充日志记录。要启用和禁用补充日志记录，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.alter_supplemental_logging`。有关 Amazon RDS 如何管理 Oracle 数据库实例的存档重做日志的保留期的更多信息，请参阅 [保留存档重做日志](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)。

`alter_supplemental_logging` 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_action`  |  varchar2  |  —  |  是  |  如果为 `'ADD'`，则添加补充日志记录；如果为 `'DROP'`，则删除补充日志记录。  | 
|  `p_type`  |  varchar2  |  null  |  否  |  补充日志记录的类型。有效值为 `'ALL'`、`'FOREIGN KEY'`、`'PRIMARY KEY'`、`'UNIQUE'` 或 `PROCEDURAL`。  | 

以下示例启用补充日志记录。

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD');
end;
/
```

以下示例为所有具有固定长度的最大大小列启用补充日志记录。

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD',
        p_type   => 'ALL');
end;
/
```

以下示例为主键列启用补充日志记录。

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD',
        p_type   => 'PRIMARY KEY');
end;
/
```

## 切换联机日志文件
<a name="Appendix.Oracle.CommonDBATasks.SwitchingLogfiles"></a>

要切换日志文件，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.switch_logfile`。`switch_logfile` 过程没有参数。

以下示例切换日志文件。

```
EXEC rdsadmin.rdsadmin_util.switch_logfile;
```

## 添加联机重做日志
<a name="Appendix.Oracle.CommonDBATasks.RedoLogs"></a>

运行 Oracle 的 Amazon RDS 数据库实例从四个联机重做日志 (每个日志的大小为 128 MB) 开始。要添加其他重做日志，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.add_logfile`。

`add_logfile` 过程具有以下参数。

**注意**  
这些参数是互斥的。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `bytes`  |  positive  |  null  |  否  |  日志文件的大小 (以字节为单位)。 仅当日志大小小于 2147483648 字节（2 GiB）时才使用此参数。否则，RDS 会发出错误。对于大于此字节值的日志大小，请改用 `p_size` 参数。  | 
|  `p_size`  |  varchar2  |  —  |  是  |  日志文件的大小，单位为 KB（K）、MB（M）或 GB（G）。  | 

以下命令将添加一个 100MB 日志文件。

```
EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '100M');
```

## 删除联机重做日志
<a name="Appendix.Oracle.CommonDBATasks.DroppingRedoLogs"></a>

要删除重做日志，请使用 Amazon RDS 过程 `rdsadmin.rdsadmin_util.drop_logfile`。`drop_logfile` 过程具有以下参数。


****  

| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `grp`  |  positive  |  —  |  是  |  日志的组编号。  | 

以下示例删除组编号为 3 的日志。

```
EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 3);
```

您只能删除具有未使用或不活动状态的日志。以下示例获取日志的状态。

```
SELECT GROUP#, STATUS FROM V$LOG;

GROUP#     STATUS
---------- ----------------
1          CURRENT
2          INACTIVE
3          INACTIVE
4          UNUSED
```