

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

# 保留封存的重做日誌
<a name="Appendix.Oracle.CommonDBATasks.RetainRedoLogs"></a>

您可以在資料庫執行個體本機保留封存的重做日誌，以搭配 Oracle LogMiner (`DBMS_LOGMNR`) 之類產品使用。保留重做日誌之後，您可以使用 LogMiner 來分析日誌。如需詳細資訊，請參閱 Oracle 文件中的[使用 LogMiner 來分析重做日誌檔案](http://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm)。

若要保留封存的重做日誌，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_util.set_configuration`。如果您在 Oracle Data Guard 中的主要執行個體上使用此程序，RDS 會變更主要執行個體上的封存日誌保留設定，並開啟僅供讀取複本，但不會變更掛載複本上的封存日誌保留設定。RDS 會短暫保留掛載複本上的最新封存重做日誌。RDS 會自動刪除下載至掛載複本的舊日誌。

`set_configuration` 程序具有下列參數。


****  

| 參數名稱 | 資料類型 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `name`  |  varchar  |  —  |  是  |  待更新組態的名稱。若要變更封存的重做日誌保留時數，請將名稱設定為 `archivelog retention hours`。  | 
|  `value`  |  varchar  |  —  |  是  |  組態值。設定要保留日誌的時數值。  | 

下列範例會保留 24 小時內的重做日誌。

```
begin
    rdsadmin.rdsadmin_util.set_configuration(
        name  => 'archivelog retention hours',
        value => '24');
end;
/
commit;
```

**注意**  
需要遞交命令，變更才會生效。

若要檢視系統能為資料庫執行個體保留多久的封存重做日誌，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_util.show_configuration`。

下列範例會顯示日誌的保留時間。

```
set serveroutput on
EXEC rdsadmin.rdsadmin_util.show_configuration;
```

輸出會顯示 `archivelog retention hours` 目前的設定，下列輸出顯示封存的重做日誌會保留 48 小時。

```
NAME:archivelog retention hours
VALUE:48
DESCRIPTION:ArchiveLog expiration specifies the duration in hours before archive/redo log files are automatically deleted.
```

因為封存的重做日誌會保留在資料庫執行個體上，請確保資料庫執行個體有足夠的配置儲存空間能存放這些保留的日誌。若要判斷資料庫執行個體在過去 X 小時中使用了多少空間，則可執行下列查詢，並以小時數取代 X。

```
SELECT SUM(BLOCKS * BLOCK_SIZE) bytes 
  FROM V$ARCHIVED_LOG
 WHERE FIRST_TIME >= SYSDATE-(X/24) AND DEST_ID=1;
```

RDS for Oracle 只有在資料庫執行個體的備份保留期間大於零時，才會產生封存的重做日誌。依預設，備份保留期間會大於零。

當封存日誌保留期間到期時，RDS for Oracle 會從資料庫執行個體移除封存的重做日誌。為了支援將資料庫執行個體還原到某個時間點，Amazon RDS 會根據備份保留期間在資料庫執行個體之外保留封存的重做日誌。若要修改備份保留期間，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

**注意**  
在某些情況下，您可能會在 Linux 上使用 JDBC 來下載封存的重做日誌，而遇到長時間的延遲和連線重設等問題。在這種情況下，上述問題可能是因 Java 用戶端上的預設隨機編號產生器設定所造成，所以建議您使用非封鎖的隨機編號產生器來設定 JDBC 驅動程式。