

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

# 將 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 插入容器資料庫 (CDB) 作為 PDB，然後嘗試 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 管理主控台，開啟位於 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Automated backups** (自動備份)。

1. 選擇您想要還原的 RDS Custom 資料庫執行個體。

1. 針對 **Actions** (動作)，選擇 **Restore to point in time** (還原至時間點)。

   **Restore to point in time (還原到時間點)** 視窗隨即出現。

1. 選擇 **Latest restorable time (最近的可還原時間)** 以還原最近一次的可能時間，或選擇 **Custom (自訂)** 以選擇一個時間。

   如果您選擇 **Custom (自訂)**，請輸入您希望執行個體叢集還原到什麼日期和時間。

   會以您的當地時區顯示時間，根據國際標準時間 (UTC) 的時差來表示。例如，UTC-5 是東部標準時間/中部日光節約時間。

1. 對於 **DB Instance Identifier** (資料庫執行個體識別符)，輸入目標還原 RDS Custom 資料庫執行個體的名稱。名稱必須是唯一的。

1. 視需要選擇其他選項，例如資料庫執行個體類別。

1. 選擇 **Restore to point in time (還原至時間點)**。

## 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
```