

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 執行 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 文件中的[指定 FORCE LOGGING 模式](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`  |  正數  |  null  |  否  |  日誌檔案的大小 (以位元組為單位)。 只有在日誌的大小低於 2147483648 位元組 (2 GiB) 時，才使用此參數。否則，RDS 會發出錯誤。對於超過此位元組值的日誌大小，請改用 `p_size` 參數。  | 
|  `p_size`  |  varchar2  |  —  |  是  |  日誌檔案的大小以 KB (K)、MB (M) 或 GB (G) 為單位。  | 

下列命令會新增 100 MB 的日誌檔案。

```
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`  |  正數  |  —  |  是  |  日誌的群組編號。  | 

下列範例會捨棄群組編號 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
```