

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

# 使用適用於 Amazon RDS for Db2 的複本
<a name="db2-replication"></a>

RDS for Db2 支援建立複本資料庫，以提供讀取擴展和災難復原功能。您可以透過兩種模式建立複本：用於卸載讀取工作負載的唯讀複本，以及用於跨區域災難復原的待命複本。RDS for Db2 使用 IBM Db2 高可用性災難復原 (HADR) 技術進行複寫。如需詳細資訊，請參閱 IBM Db2 文件中的[高可用性災難復原 (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)。

*Db2 複本*資料庫是主要資料庫的實體複本。唯讀模式中的 Db2 複本稱為*僅供讀取複本*。待命模式中的 Db2 複本稱為*待命複本*。Db2 不允許在複本中寫入，但是您可以升級複本以使其可寫入。提升的複本會將複製的資料置於提升請求提出的時機。如需詳細資訊，請參閱[提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)。

如需 RDS for Db2 複本的功能和行為摘要，請參閱 [資料庫引擎的僅供讀取複本之間的差異](USER_ReadRepl.Overview.Differences.md)。

## 唯讀和待命複本
<a name="db2-read-replicas.overview.modes"></a>

建立或修改 Db2 複本時，您可以將其置於下列任一模式中：

**唯讀**  
這是預設值。HADR 會將來源資料庫的變更傳輸並套用至所有僅供讀取複本資料庫。對於唯讀複本，Db2 環境變數 `DB2_HADR_ROS` 設定為 `ON`。複本資料庫上讀取查詢的隔離層級為 `Uncommitted Read`。如需詳細資訊，請參閱 IBM Db2 文件中[作用中待命資料庫的隔離層級](https://www.ibm.com/docs/en/db2/11.5?topic=standby-isolation-level-active-database)。  
如需套用至所有資料庫引擎之僅供讀取複本的一般資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。如需有關 Db2 HADR 的詳細資訊，請參閱 IBM Db2 文件中的[高可用性災難復原 (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)。

 **待命**  
對於待命複本，Db2 環境變數 `DB2_HADR_ROS` 設定為 `OFF`，使複本資料庫不接受使用者連線。待命複本的主要用途是跨區域災難復原。  
待命複本無法提供唯讀工作負載。待命複本沒有任何封存日誌。

單一來源資料庫執行個體可建立至多三個複本。您可以為相同的來源資料庫執行個體建立唯讀和待命資料庫複本的組合。建立複本之後，您可以變更複本模式。如需詳細資訊，請參閱 [修改 RDS for Db2 複本模式](db2-replicas-changing-replica-mode.md)。

建立複本之前，請確定您符合所有需求。如需詳細資訊，請參閱[RDS for Db2 複本的要求與考量](db2-read-replicas.limitations.md)。

## 資料庫啟用
<a name="db2-read-replicas.overview.database-activations"></a>

Db2 HADR 是在資料庫層級設定。建立複本之後，會為所有 Db2 資料庫設定 HADR，包括 RDS 完全管理的 `rdsadmin`。建立 Db2 複本之前，您必須明確啟用所有資料庫。否則，複本建立會失敗，Amazon RDS 會發出事件。資料庫執行個體有一或多個複本之後，您就無法使用 `rdsadmin.activate_database` 或 `rdsadmin.deactivate_database` 預存程序來啟用或停用資料庫執行個體上的任何資料庫。如需詳細資訊，請參閱[RDS for Db2 資料庫的預存程序](db2-sp-managing-databases.md)。

## HADR 組態
<a name="db2-read-replicas.overview.hadr-configurations"></a>

您可以連線至資料庫，然後執行 `db2 get db cfg`，以查看資料庫的所有 HADR 組態。

## 封存日誌保留
<a name="db2-read-replicas.overview.log-retention"></a>

滿足下列條件後，Amazon RDS 會從主要資料庫執行個體清除日誌：
+ 日誌至少已有兩個小時。
+ 已超過封存日誌保留時數的設定。
+ 封存日誌已成功複寫至所有複本資料庫執行個體。此條件同時適用於相同 中的資料庫執行個體 AWS 區域 和跨區域資料庫執行個體。

如需設定封存記錄保留時數的相關資訊，請參閱[rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention)。

Amazon RDS 會個別檢查及清除每個資料庫。如果資料庫遺失 HADR 連線，或無法使用連線的相關資訊，則 Amazon RDS 會略過資料庫，而不會清除封存日誌。

## Db2 複寫期間的中斷
<a name="db2-read-replicas.overview.outages"></a>

建立複本時，Amazon RDS 會對來源資料庫執行個體建立資料庫快照，接著開始複寫。當資料庫快照作業開始時，來源資料庫執行個體會經歷非常短暫的 I/O 暫停。I/O 暫停通常持續約一秒。不過，如果來源資料庫執行個體是多可用區域部署，則來源資料庫執行個體不會遇到任何 I/O 暫停。這是因為使用多可用區域部署時，會從次要資料庫執行個體擷取快照。

資料庫快照會成為 Db2 複本。Amazon RDS 會為來源資料庫和複本設定必要的參數和權限，而不會發生任何服務中斷。同樣地，如果您刪除複本，也不會發生中斷。

# RDS for Db2 複本的要求與考量
<a name="db2-read-replicas.limitations"></a>

Db2 複本需求分為數個類別：授權和版本控制、備份和還原考量、複寫行為，以及一般作業考量。建立 Db2 複本之前，請先深入了解下列要求與注意事項。

## RDS for Db2 複本的版本和授權需求
<a name="db2-read-replicas.limitations.versions-and-licenses"></a>

建立 RDS for Db2 複本之前，關版請檢閱下列有本和授權模型的資訊：
+ **支援的版本** – 所有 Db2 11.5 版本都支援複本資料庫執行個體。

  來源和複本資料庫執行個體必須使用相同的主要版本。Db2 複本支援次要版本升級，但不支援主要版本升級。如需與升級資料庫執行個體的相關資訊，請參閱 [升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)。
**注意**  
升級來源資料庫執行個體時，所有複本都會自動升級，以維持版本相容性。
+ **有效的授權模型和複本模式** – Db2 Advanced Edition (AE) 和 Standard Edition (SE) 都可以透過 AWS Marketplace 模型以唯讀或待命模式為自有授權 (BYOL) 模型和 Db2 授權建立複本。
+ **自訂參數群組** – 您必須為複本指定自訂參數群組。

  對於使用 BYOL 模型的複本，此自訂參數群組必須包含您的 IBM Site ID 和 IBM Customer ID。如需詳細資訊，請參閱[Db2 的自帶授權 (BYOL) IBM ID](db2-licensing.md#db2-prereqs-ibm-info)。您可以使用 AWS 管理主控台、 或 RDS API AWS CLI ，為複本指定此自訂參數群組。
+ **vCPU 計數**因複本模式和授權模型而異：
  + 無論資料庫執行個體大小為何，**待命複本**一律使用兩個 vCPU。
    + **BYOL 模型** – AWS License Manager 組態顯示 RDS for Db2 資料庫執行個體使用兩個 vCPU。
    + **透過 AWS Marketplace 模型的 Db2 授權** – 帳單反映兩個 vCPU 的授權成本。
  + **唯讀複本**使用與資料庫執行個體大小相同的 vCPU 計數。
    + **BYOL 模型** – AWS License Manager 組態顯示 RDS for Db2 資料庫執行個體使用符合資料庫執行個體大小的相同數量 vCPU。
    + **透過 AWS Marketplace 模型取得的 Db2 授權** – 帳單反映符合資料庫執行個體大小的相同 vCPU 數量的授權成本。

## RDS for Db2 複本的備份與還原考量
<a name="db2-read-replicas.limitations.backups"></a>

複本備份的行為與主要資料庫備份不同。請考慮下列備份和還原需求：
+ 若要建立 RDS for Db2 複本的快照或開啟自動備份，請務必手動設定備份保留期間。根據預設，不會啟用自動備份。
+ 當您還原複本備份時，會還原到資料庫時間，而不是開始備份的時間。資料庫時間指備份中資料最近套用的交易時間。其中的差異非常明顯，因為複本的時間可能會延後主要資料庫幾分鐘或幾小時。有多個資料庫時，RDS for Db2 會使用最早的資料庫時間。

  若要尋找差異，請執行 AWS CLI [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) 命令或呼叫 RDS API [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) 操作。將 `SnapshotDatabaseTime` 值與 `OriginalSnapshotCreateTime` 值進行比較。`SnapshotDatabaseTime` 值是複本備份的資料庫時間。`OriginalSnapshotCreateTime` 值是主要資料庫上最新套用的交易。

如需備份和還原備份的詳細資訊，請參閱 [使用 RDS for Db2 複本備份](db2-read-replicas.backups.md)。

## RDS for Db2 複本的複寫考量
<a name="db2-read-replicas.limitations.replication"></a>

Db2 複本使用具有特定限制和行為的 HADR 技術。請檢閱下列複寫注意事項：
+ 複寫會對 RDS for Db2 資料庫執行個體上的所有資料庫使用 Db2 HADR。
+ 複寫不支援 `LOAD` 命令。如果您從來源資料庫執行個體執行 `LOAD` 命令，將會收到不一致的資料。
+ RDS for Db2 不會複寫下列項目：
  + 儲存體存取。請注意依賴儲存體存取的資料，例如外部資料表。
  + 未記錄的非內嵌 LOBs。
  + 外部預存程序的二進位檔 (使用 C 或 Java)。
+ 對於待命複本，RDS for Db2 會複寫下列項目：
  + 本機使用者，主要使用者除外
  + 資料庫組態參數
+ 對於唯讀複本，RDS for Db2 會複寫下列項目：
  + 本機使用者，主要使用者除外
  + SID 群組映射

## RDS for Db2 複本的其他事項考量
<a name="db2-read-replicas.limitations.miscellaneous"></a>

其他作業考量適用於 Db2 複本。檢閱下列項目：
+ RDS for Db2 會將資料庫組態複寫到複本。當 RDS for Db2 提升複本時，它會停用並啟用每個資料庫。
+ RDS for Db2 會複寫本機使用者，但不會複寫主要使用者，以及將 SID 群組映射複寫到複本。您可以在複本上修改主要使用者。如需詳細資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。
+ 所有資料庫都必須處於作用中狀態。如需啟用資料庫的相關資訊，請參閱 [RDS for Db2 資料庫的預存程序](db2-sp-managing-databases.md)。
+ 建立複本之前，必須先完成建立、捨棄、還原或滾動資料庫的所有預存程序。如需有關這些預存程序的詳細資訊，請參閱 [RDS for Db2 資料庫的預存程序](db2-sp-managing-databases.md)。
+ 建立複本時，Amazon RDS 會將來源資料庫執行個體上所有資料庫的資料庫層級參數 `blocknonlogged` 設定為 `YES`。當來源複本再次成為獨立執行個體時，Amazon RDS 會將值設回 `NO`。如需詳細資訊，請參閱 IBM Db2 文件中的[區塊非記錄 - 區塊建立允許非記錄活動組態參數的資料表](https://www.ibm.com/docs/en/db2/11.1?topic=dcp-blocknonlogged-block-creation-tables-that-allow-non-logged-activity)。
+ 建立複本時，Amazon RDS 會將來源資料庫執行個體上所有資料庫的資料庫層級參數 `logindexbuild` 設定為 `YES`。當來源複本再次成為獨立執行個體時，Amazon RDS 會將值設回 `NO`。如需詳細資訊，請參閱 IBM Db2 文件中的 [logindexbuild - 日誌索引頁面建立的組態參數](https://www.ibm.com/docs/en/db2/11.1?topic=parameters-logindexbuild-log-index-pages-created)。

# 準備建立 RDS for Db2 複本
<a name="db2-read-replicas.Configuration"></a>

建立 RDS for Db2 複本之前，您必須先完成下列任務才能成功複寫。這些任務有助於防止常見問題，並確保最佳效能。

## 任務 1：啟用自動備份
<a name="db2-read-replicas.configuration.autobackups"></a>

當您將資料庫執行個體作為來源資料庫執行個體之前，您必須在來源資料庫執行個體上啟用自動備份。這是所有複本建立作業的先決條件。若要了解如何執行此程序，請參閱[啟用自動備份](USER_WorkingWithAutomatedBackups.Enabling.md)。

如需 Db2 複本特定備份的相關資訊，請參閱 [使用 RDS for Db2 複本備份](db2-read-replicas.backups.md)。

## 任務 2：規劃運算和儲存資源
<a name="db2-read-replicas.configuration.planning-resources"></a>

確保資料庫執行個體及複本都依照運算和儲存適當的調整大小，以搭配工作負載。如複本達到運算、網路或儲存資源上限時，複本會停止接受或套用來源的變更。如需監控複本效能和資源使用率的相關資訊，請參閱 [監控僅供讀取複本](USER_ReadRepl.Monitoring.md)。

RDS for Db2 的來源資料庫執行個體與其複本之間不會相互干涉，以降低複寫時的高延遲。如果您遇到高複本延遲，請參閱 [監控 Db2 複寫延遲](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag) 以取得故障診斷指引。

您可以從來源和其他複本獨立修改複本的儲存和 CPU 資源。如需詳細資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

## 任務 3：準備資料庫
<a name="db2-read-replicas.configuration.activate-databases"></a>

建立複本之前，請根據下列幾點確認您的資料庫已就緒：
+ 資料庫執行個體包含您想要出現在資料庫執行個體上的所有資料庫。建立複本後，您無法在資料庫執行個體上建立、捨棄或原生還原資料庫。對 [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)、[rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database) 或 [rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) 預存程序的任何呼叫都會失敗。
+ 資料庫執行個體上的所有資料庫都處於作用中狀態。如果任何資料庫處於非作用中狀態，複本建立將會失敗。如需啟用資料庫的相關資訊，請參閱 [RDS for Db2 資料庫的預存程序](db2-sp-managing-databases.md)。

## 後續步驟
<a name="db2-read-replicas-configuration-next-steps"></a>

完成所有準備任務後，您就可以建立 Db2 複本。
+ 若要建立唯讀複本，請參閱 [建立僅供讀取複本](USER_ReadRepl.Create.md)。
+ 若要建立待命複本，請參閱 [建立待命 Db2 複本](db2-read-replicas.creating-in-standby-mode.md)。

# 在待命模式中建立 RDS for Db2 複本
<a name="db2-read-replicas.creating-in-standby-mode"></a>

根據預設，會以唯讀模式建立 Db2 複本。您可以在待命模式中建立複本，以用於災難復原。待命複本不接受使用者連線，但可為跨區域案例提供更快的容錯移轉功能。

在建立待命複本之前，請確定您已完成準備任務。如需詳細資訊，請參閱[準備建立 RDS for Db2 複本](db2-read-replicas.Configuration.md)。建立待命複本之後，您可以變更複本模式。如需詳細資訊，請參閱[修改 RDS for Db2 複本模式](db2-replicas-changing-replica-mode.md)。

您可以使用 AWS 管理主控台、 AWS CLI或 RDS API 建立待命複本。如需建立唯讀複本的詳細資訊，請參閱 [建立僅供讀取複本](USER_ReadRepl.Create.md)。

## 主控台
<a name="db2-read-replicas.creating-in-standby-mode.console"></a>

**從來源 RDS for Db2 資料庫執行個體建立待命複本**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇要作為待命複本來源的 RDS for Db2 資料庫執行個體。

1. 在 **Actions** (動作) 中，選擇 **Create replica** (建立複本)。

1. 針對**複本模式**，選擇**待命**。

1. 選擇您想要使用的設定。針對**資料庫執行個體識別符**，輸入待命複本的名稱。視需要調整其他設定。

1. 針對**區域**，選擇將啟動待命複本 AWS 區域 的 。

1. 選擇您的執行個體大小和儲存體類型。建議您使用與待命複本來源資料庫執行個體相同的資料庫執行個體類別和儲存類型。

1. 針對**多可用區域部署**，選擇**建立待命執行個體**，以在另一個可用區域中，建立複本的待命複本，以便支援待命複本。

1. 選擇您想要使用的其他設定。

1. 選擇 **Create replica (建立複本)**。

在**資料庫**頁面中，待命複本具有角色**複本**。

## AWS CLI
<a name="db2-read-replicas.creating-in-standby-mode.cli"></a>

若要在待命模式中建立 Db2 複本，請使用 AWS CLI 命令 [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html)，並將 `--replica-mode`設定為 `mounted`。

**Example**  
針對 Linux、macOS 或 Unix：  

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier my_standby_replica \
    --source-db-instance-identifier my_db_instance \
    --replica-mode mounted
```
在 Windows 中：  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier my_standby_replica ^
    --source-db-instance-identifier my_db_instance ^
    --replica-mode mounted
```

## RDS API
<a name="db2-read-replicas.creating-in-standby-mode.api"></a>

若要在待命模式中建立 Db2 複本，請在 RDS API 作業 [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) 中指定 `ReplicaMode=mounted`。

# 修改 RDS for Db2 複本模式
<a name="db2-replicas-changing-replica-mode"></a>

您可以在唯讀與待命模式之間變更現有 Db2 複本的複本模式。此彈性可讓您根據讀取工作負載或災難復原需求不斷變化的需求來調整複本組態。

在下列案例中，您可能想要變更複本模式：
+ **唯讀轉換為待命** – 當您不再需要讀取容量，但想要維護災難復原功能時
+ **待命轉換為唯讀** – 當您需要為報告或分析工作負載新增讀取容量時

變更複本模式之前，請確定符合下列條件：
+ 複本處於可用狀態。
+ 沒有任何作用中的維護作業在複本上執行。
+ 您擁有修改資料庫執行個體的必要許可。

變更作業可能需要幾分鐘的時間。在作業期間，資料庫執行個體狀態會變更為 **modifying (正在修改)**。如需狀態變更的詳細資訊，請參閱[在 Amazon RDS 資料庫執行個體狀態](accessing-monitoring.md#Overview.DBInstance.Status)。當您從唯讀變更為待命模式時，複本會中斷所有作用中的連線。

**重要**  
由於變更複本模式會暫時中斷服務，因此請在維護時段期間規劃變更，將對應用程式的影響降至最低。

您可以使用 AWS 管理主控台 AWS CLI、 或 RDS API 修改複本模式。

## 主控台
<a name="db2-replicas-changing-replica-mode-console"></a>

**變更 Db2 複本的複本模式**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇您要修改的複本資料庫。

1. 選擇 **Modify** (修改)。

1. 針對**複本模式**，選擇所需的模式：
   + **唯讀** – 適用於讀取工作負載
   + **待命** – 適用於災難復原

1. 選擇您想要變更的其他設定。

1. 選擇 **Continue (繼續)**。

1. 在 **Scheduling of modifications** (修改排程) 中，選擇 **Apply immediately** (立即套用)。

1. 選擇 **Modify DB instance (修改資料庫執行個體)**。

1. 修改完成後，請在**資料庫**頁面中驗證複本模式變更。變更完成時，複本狀態應會顯示為**可用**。

## AWS CLI
<a name="db2-replicas-changing-replica-mode-cli"></a>

若要將 Db2 複本從唯讀模式變更為待命模式，請在 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 命令`mounted`中將 `--replica-mode` 設為 。若要將 Db2 複本從待命模式變更為唯讀模式，請將 `--replica-mode` 設定為 `open-read-only`。

下列範例會將複本從唯讀模式變更為待命模式：

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db2_replica \
    --replica-mode mounted
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db2_replica ^
    --replica-mode mounted
```

下列範例會將複本從待命模式變更為唯讀模式：

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db2_replica \
    --replica-mode open-read-only
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db2_replica ^
    --replica-mode open-read-only
```

## RDS API
<a name="db2-replicas-changing-replica-mode-api"></a>

若要將 Db2 複本從唯讀模式變更為待命模式，請在 [ModifyDBInstance](AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 中設定 `ReplicaMode=mounted`。若要將 Db2 複本從待命模式變更為唯讀模式，請設定 `ReplicaMode=open-read-only`。

以下是將複本模式從唯讀變更為待命的範例 API 呼叫：

```
{
    "DBInstanceIdentifier": "my_db2_replica",
    "ReplicaMode": "mounted",
    "ApplyImmediately": true
}
```

以下是將複本模式從待命變更為唯讀的範例 API 呼叫：

```
{
    "DBInstanceIdentifier": "my_db2_replica",
    "ReplicaMode": "open-read-only",
    "ApplyImmediately": true
}
```

如需有關複本模式之間差異的相關資訊，請參閱 [使用適用於 Amazon RDS for Db2 的複本](db2-replication.md)。如需對複本問題進行故障診斷，請參閱 [針對 RDS for Db2 複寫問題進行故障診斷](db2-troubleshooting-replicas.md)。

# 使用 RDS for Db2 複本備份
<a name="db2-read-replicas.backups"></a>

您可以建立及還原 RDS for Db2 複本的備份，就像主要資料庫一樣。不過，複本備份的運作方式有重大差異，尤其是有關還原時間與備份保留設定。

RDS for Db2 支援複本的自動備份和手動快照。RDS for Db2 不支援時間點還原。如需 RDS 備份的相關資訊，請參閱 [備份、還原和匯出資料](CHAP_CommonTasks.BackupRestore.md)。

## 複本備份的主要差異
<a name="db2-read-replicas-backups-overview"></a>

複本備份在幾個重要方面與主要資料庫備份不同：
+ 預設不會啟用複本的自動備份。
+ 還原作業使用資料庫時間，而不是備份建立時間。
+ 複本延遲可能會影響還原的實際資料。如需有關監控複本延遲的相關資訊，請參閱 [監控 Db2 複寫延遲](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag)。

## 啟用 RDS for Db2 複本的自動備份
<a name="db2-read-replicas.backups.turning-on"></a>

與主要資料庫不同，RDS for Db2 複本預設不會啟用自動備份。您必須手動設定備份保留期，才能啟用自動備份。將備份保留期間設定為正的非零值以啟用自動備份。

### 主控台
<a name="db2-read-replicas.backups.turning-on-console"></a>

**立即啟用自動備份**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要修改的資料庫執行個體。

1. 選擇 **Modify (修改)**。

1. 針對**備份保留期間**，選擇非零正值，例如三天。

1. 選擇 **Continue (繼續)**。

1. 選擇 **Apply immediately** (立即套用)。

1. 選擇**修改資料庫執行個體**以儲存您的變更並啟用自動備份。

### AWS CLI
<a name="db2-read-replicas.backups.turning-on-cli"></a>

若要啟用自動備份，請使用 AWS CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令。

包含以下參數：
+ `--db-instance-identifier`
+ `--backup-retention-period`
+ `--apply-immediately` 或 `--no-apply-immediately` \$1

以下範例透過將備份保留期間設定為三天來啟用自動備份。變更會立即套用。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db_instance  \
    --backup-retention-period 3 \
    --apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db_instance  ^
    --backup-retention-period 3 ^
    --apply-immediately
```

### RDS API
<a name="db2-read-replicas.backups.turning-on-api"></a>

若要啟用自動備份，請使用 RDS API [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 作業，其中包含下列必要參數：
+ `DBInstanceIdentifier`
+ `BackupRetentionPeriod`

## 還原 RDS for Db2 複本備份
<a name="db2-read-replicas.backups.restoring"></a>

您可以還原 RDS for Db2 複本備份，方法與還原主要資料庫備份的方式相同。如需詳細資訊，請參閱[還原至資料庫執行個體](USER_RestoreFromSnapshot.md)。

還原複本備份時最重要的考量，是了解資料庫時間與備份建立時間之間的差異，尤其是存在複本延遲時。

您可以監控複寫延遲，並確保備份包含預期的資料。如需 ReplicaLag 指標的相關資訊，請參閱 [Amazon RDS 的 Amazon CloudWatch 指標](rds-metrics.md)。

### 了解計時差異
<a name="db2-read-replicas-backups-restoring-timing"></a>

還原複本備份時，您必須決定要還原的時間點。資料庫時間指備份中資料最近套用的交易時間。還原複本備份時，您會還原到資料庫時間，而不是備份完成的時間。其中的差異非常明顯，因為複本的時間可能會延後主要資料庫幾分鐘或幾小時。因此，複本備份的資料庫時間可能遠早於快照建立時間。

若要尋找資料庫時間與建立時間之間的差異，請執行 AWS CLI [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) 命令或呼叫 RDS API [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) 作業。比較 `SnapshotDatabaseTime` 值和 `OriginalSnapshotCreateTime` 值。`SnapshotDatabaseTime` 值是複本備份的所有資料庫中最早的資料庫時間。`OriginalSnapshotCreateTime` 值是主要資料庫上最新套用的交易。請注意，多個資料庫的複寫延遲可能不同，而資料庫時間可能介於這兩個時間之間。

下列 AWS CLI 範例顯示兩次之間的差異：

針對 Linux、macOS 或 Unix：

```
aws rds describe-db-snapshots \
    --db-instance-identifier my_db2_replica \
    --db-snapshot-identifier my_replica_snapshot
```

在 Windows 中：

```
aws rds describe-db-snapshots ^
    --db-instance-identifier my_db2_replica ^
    --db-snapshot-identifier my_replica_snapshot
```

此命令會產生類似下列範例的輸出。

```
{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "my_replica_snapshot",
            "DBInstanceIdentifier": "my_db2_replica", 
            "SnapshotDatabaseTime": "2022-07-26T17:49:44Z",
            ...
            "OriginalSnapshotCreateTime": "2021-07-26T19:49:44Z"
        }
    ]
}
```

# 針對 RDS for Db2 複寫問題進行故障診斷
<a name="db2-troubleshooting-replicas"></a>

本主題說明常見的 RDS for Db2 複寫問題，並提供唯讀和待命複本的故障診斷指引。除了檢閱下列故障診斷資訊之外，請確定您遵循[需求和考量](db2-read-replicas.limitations.md)，並在建立 Db2 複本之前，完成[準備步驟](db2-read-replicas.Configuration.md)。

## 複本建立失敗
<a name="db2-troubleshooting-replicas-creation"></a>



建立複本可能會失敗，原因如下：
+ **非作用中資料庫** – 來源資料庫執行個體上的所有資料庫都必須處於作用中狀態後，才能建立複本。

  如需啟用資料庫的相關資訊，請參閱 [RDS for Db2 資料庫的預存程序](db2-sp-managing-databases.md)。
+ **缺少自動備份** – 來源資料庫執行個體必須啟用自動備份。

  如需啟用備份的詳細資訊，請參閱 [啟用 RDS for Db2 複本的自動備份](db2-read-replicas.backups.md#db2-read-replicas.backups.turning-on)。
+ **參數群組問題** – 複本需要自訂參數群組。對於 BYOL 授權，參數群組必須包含 IBM Site ID 和 IBM Customer ID。

  如需詳細資訊，請參閱[Db2 的自帶授權 (BYOL) IBM ID](db2-licensing.md#db2-prereqs-ibm-info)。

## 監控 Db2 複寫延遲
<a name="db2-troubleshooting-replicas-lag"></a>

若要在 Amazon CloudWatch 中監控複寫延遲，請檢視 Amazon RDS `ReplicaLag` 指標。如需複寫延遲時間的更多資訊，請參閱 [監控僅供讀取複本](USER_ReadRepl.Monitoring.md) 和 [Amazon RDS 的 Amazon CloudWatch 指標](rds-metrics.md)。如需為複本延遲設定 CloudWatch 警示的詳細資訊，請參閱 [使用 Amazon CloudWatch 監控 Amazon RDS 指標](monitoring-cloudwatch.md)。

對於唯讀複本，如果延遲時間太長，請查詢 `MON_GET_HADR` 資料表，以取得複本資料庫執行個體的狀態。

對於待命複本，如果延遲時間太長，請查詢 `MON_GET_HADR` 資料表，以取得來源資料庫執行個體的狀態。請勿查詢複本資料庫執行個體，因為複本資料庫執行個體不接受使用者連線。

高複寫延遲的常見原因包括下列原因：
+ 複本上的運算資源不足
+ 來源與複本之間的網路連線問題
+ 來源資料庫上的高寫入活動
+ 複本上的儲存效能限制

如果高複寫延遲持續存在，請考慮擴展複本資源。如需詳細資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

## Db2 複寫錯誤
<a name="db2-troubleshooting-replicas-triggers"></a>

Db2 複寫可能因各種原因而處於錯誤狀態。執行下列動作：
+ 監控事件和資料庫執行個體狀態，以確保資料庫執行個體正在複寫。

  如需詳細資訊，請參閱[使用 Amazon RDS 事件通知](USER_Events.md)。
+ 在 Amazon RDS 主控台中檢查 Db2 複本的診斷日誌。在日誌中，尋找 HADR 訊息中的錯誤。將日誌序列號與主序列號進行比較。

  如需存取及解譯 Db2 診斷日誌的相關資訊，請參閱 [Amazon RDS for Db2 資料庫日誌檔案](USER_LogAccess.Concepts.Db2.md)。如需 Db2 HADR 組態和故障診斷的相關資訊，請參閱 [使用適用於 Amazon RDS for Db2 的複本](db2-replication.md)。

如果複寫錯誤持續存在，您可能需要重新建立複本。

## 連線問題
<a name="db2-troubleshooting-replicas-connections"></a>

如果您無法連線至複本，請檢閱下列複本模式的相關資訊：
+ **待命複本** – 依設計不接受使用者連線。針對讀取工作負載使用唯讀複本。
+ **唯讀複本** – 檢查您的安全群組設定、網路 ACL 和參數群組組態。

  如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[使用安全群組控制 AWS 資源的流量](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)、《Amazon VPC 使用者指南》**中的[使用網路存取控制清單控制子網路流量](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)，以及 [Amazon RDS 的參數群組](USER_WorkingWithParamGroups.md)。

## 效能問題
<a name="db2-troubleshooting-replicas-performance"></a>

如果複本效能不佳，請檢閱下列建議：
+ 確保複本具有足夠的運算和儲存資源。
+ 在 Amazon CloudWatch 中監控 `ReplicaLag` 指標。
+ 考慮擴展複本資料庫執行個體類別。

如需修改資源或執行個體類別的相關資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

如需監控複本延遲的資訊，請參閱 [監控複寫延遲](USER_ReadRepl.Monitoring.md#USER_ReadRepl.Monitoring.Lag) 和 [Amazon RDS 的 Amazon CloudWatch 指標](rds-metrics.md)。如需為複本延遲設定 CloudWatch 警示的詳細資訊，請參閱 [使用 Amazon CloudWatch 監控 Amazon RDS 指標](monitoring-cloudwatch.md)。